[python] 튜플 목록에서 요소 찾기

나는 목록 ‘a’

a= [(1,2),(1,4),(3,5),(5,7)]

특정 숫자에 대한 모든 튜플을 찾아야합니다. 1이라고 말해라

result = [(1,2),(1,4)]

어떻게합니까?



답변

첫 번째 숫자 만 일치 시키려면 다음과 같이하십시오.

[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 ) )


답변

[tup for tup in a if tup[0] == 1]


답변

for item in a:
   if 1 in item:
       print item


답변

>>> [i for i in a if 1 in i]

[(1, 2), (1, 4)]


답변

filter기능은 흥미로운 솔루션을 제공 할 수도 있습니다.

result = list(filter(lambda x: x.count(1) > 0, a))

이 목록에서 튜플을 검색하여 1. 검색이 첫 번째 요소로 제한되면 솔루션을 다음과 같이 수정할 수 있습니다.

result = list(filter(lambda x: x[0] == 1, a))