문자열 배열이 있으면 for
루프 를 수행하지 않고 문자열이 배열에 있는지 확인할 수 있습니까? 특히, 나는 if
문장 내에서 그것을 할 수있는 방법을 찾고 있습니다 .
if [check that item is in array]:
답변
“배열”이라고 말하는 “목록”을 의미한다고 가정하면 할 수 있습니다
if item in my_list:
# whatever
이것은 목록뿐만 아니라 모든 컬렉션에 적용됩니다. 사전의 경우 주어진 키가 사전에 있는지 확인합니다.
답변
또한 “배열”이라고 말할 때 “목록”을 의미한다고 가정하겠습니다. Sven Marnach의 솔루션이 좋습니다. 목록에서 반복적 인 검사를 수행하려는 경우이를 세트 또는 고정 세트로 변환하는 것이 좋습니다. 각 검사마다 더 빠를 수 있습니다. strs 목록을 다음과 같이 가정합니다 subjects
.
subject_set = frozenset(subjects)
if query in subject_set:
# whatever
답변
람다 함수를 사용하십시오.
배열이 있다고 가정 해 봅시다.
nums = [0,1,5]
5가 있는지 확인하십시오 nums
.
(len(filter (lambda x : x == 5, nums)) > 0)
이 솔루션은 더욱 강력합니다. 이제 특정 조건을 만족하는 숫자 가 배열에 있는지 확인할 수 있습니다 nums
.
예를 들어 5보다 크거나 같은 숫자가 있는지 확인하십시오 nums
.
(len(filter (lambda x : x >= 5, nums)) > 0)
답변
배열에는 .values를 사용해야합니다. 예를 들어 열 이름이 test [ ‘Name’] 인 데이터 프레임이 있다고 가정하면
if name in test['Name'].values :
print(name)
일반 목록의 경우 .values를 사용할 필요가 없습니다.
답변
배열에 동일한 구문을 사용할 수도 있습니다. 예를 들어 Pandas 시리즈 내에서 검색하는 경우 :
ser = pd.Series(['some', 'strings', 'to', 'query'])
if item in ser.values:
# do stuff