Форум сайта python.su
0
Добрый вечер. Я сейчас в цикле for перебираю массив и сверяю его элементы со значением, полученным от пользователя, используя примерно такой код
lst = [1, 2, 3, 4, 5, 6] a = input('...') for num in lst: if a == num: print("найдено") break
a in lst
Офлайн
75
Blow mind!
Офлайн
0
Singularityвообще ничего не понятно из того, что я написал?)
Blow mind!
Офлайн
75
dapaci
теперь вы меня понимаете
Офлайн
857
dapaciон в списке из целых чисел ищет строку
используя примерно такой код
dapaciпочему не подходит ?
проверка на вхождение по типуне подходитa in lst
Отредактировано py.user.next (Фев. 27, 2014 22:28:18)
Офлайн
0
суть в том, что нужно выполнить какое-то действие, если мы перебрали весь массив и не нашли нужных элементов в нем
Офлайн
221
if a not in lst:
# элемент не найден. делаем что угодно
else:
# элемент найден, если надо то тут что то с ним делаем. Либо вообще без else, просто код будет выполняться далее
Офлайн
0
dapaciЯ не стал вдаваться в подробности о том, что в проекте у меня список словарей со значениями равными и строкам и спискам. Мне придется в каждой итерации складывать все элементы словаря в список для того, что бы выполнить a in lst.
не подходит, потому что в проекте код сложнее и собирать из него отдельный массив - еще хуже чем флажок.
Офлайн
857
dapaci
у меня список словарей со значениями равными и строкам и спискам
dapaciну, есть там несколько вариантов
Но, кажется, в питоне должно быть решение покрасивее.
Офлайн
0
пусть массив будет таким
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'] } ... ]
for user in lst: if a == user['first_name']: print "%s detected" % a break
Отредактировано dapaci (Фев. 28, 2014 00:38:44)
Офлайн