Найти элемент в списке кортежей
у меня есть список 'a'
a= [(1,2),(1,4),(3,5),(5,7)]
мне нужно найти все записи на конкретное число. сказать 1 это будет
result = [(1,2),(1,4)]
Как мне это сделать?
8 ответов:
Если вы просто хотите, чтобы первое число совпадало, вы можете сделать это так:
[item for item in a if item[0] == 1]
Если вы просто ищете кортежи с 1 в них:
[item for item in a if 1 in item]
на самом деле есть умный способ сделать это, который полезен для любого списка кортежей, где размер каждого кортежа равен 2: Вы можете преобразовать свой список в один словарь.
например,
test = [("hi", 1), ("there", 2)] test = dict(test) print test["hi"] # prints 1
Читать далее Списочные Включения
[ (x,y) for x, y in a if x == 1 ]
также читайте вверх функции генератора и
yield
заявление.def filter_value( someList, value ): for x, y in someList: if x == value : yield x,y result= list( filter_value( a, 1 ) )