나는 목록 ‘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))