Найти - Пользователи
Полная версия: Перебор списка с проверкой на совпадение
Начало » Python для новичков » Перебор списка с проверкой на совпадение
1 2
dapaci
Добрый вечер. Я сейчас в цикле for перебираю массив и сверяю его элементы со значением, полученным от пользователя, используя примерно такой код
lst = [1, 2, 3, 4, 5, 6]
a = input('...')
for num in lst:
    if a == num:
        print("найдено")
        break
Я хотел бы вывести надпись “не найдено”, если пройдясь по всему циклу элементы так и не совпадут. Первое что приходит в голову - флажок, который примет значение True или False, после чего я выведу нужную надпись. Но, кажется, в питоне должно быть решение покрасивее. Подозреваю что это можно реализовать какой-нибудь lambda функцией, но понятия не имею как это сделать. проверка на вхождение по типу
a in lst
не подходит, потому что в проекте код сложнее и собирать из него отдельный массив - еще хуже чем флажок.
Подскажите, пожалуйста, как это реализовать покрасивее.
Singularity
Blow mind!
dapaci
Singularity
Blow mind!
вообще ничего не понятно из того, что я написал?)
Singularity
dapaci
теперь вы меня понимаете
py.user.next
dapaci
используя примерно такой код
он в списке из целых чисел ищет строку

dapaci
проверка на вхождение по типу
a in lst
не подходит
почему не подходит ?
dapaci
суть в том, что нужно выполнить какое-то действие, если мы перебрали весь массив и не нашли нужных элементов в нем
JOHN_16
if a not in lst:
# элемент не найден. делаем что угодно
else:
# элемент найден, если надо то тут что то с ним делаем. Либо вообще без else, просто код будет выполняться далее
Мы до сих пор не понимаем чем вам не угождает эта запись. Вы либо не понимаете вообще что делаете. либо не договариваете нам. Потому что основываясь на всем что вы сказали все сделают один вывод - подобная запись подходит более чем.
dapaci
dapaci
не подходит, потому что в проекте код сложнее и собирать из него отдельный массив - еще хуже чем флажок.
Я не стал вдаваться в подробности о том, что в проекте у меня список словарей со значениями равными и строкам и спискам. Мне придется в каждой итерации складывать все элементы словаря в список для того, что бы выполнить a in lst.
py.user.next
dapaci
у меня список словарей со значениями равными и строкам и спискам
dapaci
Но, кажется, в питоне должно быть решение покрасивее.
ну, есть там несколько вариантов
давай примерный пример
dapaci
пусть массив будет таким
lst = [
    {
        "first_name": "Ivan",
        "last_name": "Ivanov",
        "middle_name": "Ivanovich",
        "note": ['yes', 'my', 'fantasy', 'is', 'perfect']
    },
    {
        "first_name": "Andrey",
        "last_name": "Andreenko",
        "middle_name": "Andreevich",
        "note": ['and', 'my', 'too']
    }
...
]
а искать мы будем a со значением ‘Andrey’
тогда мой код сейчас выглядит так:
for user in lst:
    if a == user['first_name']:
        print "%s detected" % a
        break
Если а будет равным, например, ‘Arkadiy’, то было бы хорошо вывести что-то вроде “не найден”
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB