Study/Python study
[Python(파이썬)] filter(), enumerate() - 찾고자하는 item의 index 모두 찾기
파크영
2021. 7. 12. 18:22
index()
찾고자 하는 item의 index 반환
리스트에서 index()를 사용하면 찾고자하는 item의 index가 가장 작은 한개만 반환한다.
>>> test = 'ABAABB'
>>> test = list(test)
>>> test.index('B')
1
찾고자 하는 item의 인덱스를 모두 찾아 반환하고 싶을 때 사용하는 방법은 2가지이다.
filter()
# test에서 'B'의 인덱스를 모두 반환
>>> list(filter(lambda x: test[x] == 'B', range(len(test))))
[1, 4, 5]
>>> test2 = [1,2,3,4,1,1,6,2,1]
# test2에서 값이 2인 인덱스를 모두 반환
>>> list(filter(lambda x: test2[x] == 2, range(len(test2))))
[1, 7]
enumerate()
# test에서 'B'의 인덱스를 모두 반환
>>> [i for i, x in enumerate(test) if x == 'B']
[1, 4, 5]
# test2에서 값이 2인 인덱스를 모두 반환
>>> [i for i, x in enumerate(test2) if x == 2]
[1, 7]