[python] 파이썬의 “in”세트 연산자

나는 파이썬 in연산자 세트 에 대해 약간 혼란 스럽다 .

내가 설정 한 경우 s일부 인스턴스를 b, 그것은 사실이다 b in s수단 ” 일부 요소가 x있는 sb == x입니다이true ?”



답변

예, 그러나 또한 의미합니다 hash(b) == hash(x). 따라서 항목의 동등성이 충분하지 않습니다.


답변

맞습니다. 다음과 같이 통역사에서 시도해 볼 수 있습니다.

>>> a_set = set(['a', 'b', 'c'])

>>> 'a' in a_set
True

>>>'d' in a_set
False


답변

그렇습니다. 또는 간단한 반복자가 될 수 있습니다. 예를 들어 : 반복자로서의 예 :

a=set(['1','2','3'])
for x in a:
 print ('This set contains the value ' + x)

수표와 마찬가지로 :

a=set('ILovePython')
if 'I' in a:
 print ('There is an "I" in here')

편집 : 목록과 문자열이 아닌 세트를 포함하도록 편집되었습니다.


답변

문자열은 set유형 은 아니지만 in스크립트에서 유효성 검사 중에 중요한 속성을 갖습니다 .

yn = input("Are you sure you want to do this? ")
if yn in "yes":
    #accepts 'y' OR 'e' OR 's' OR 'ye' OR 'es' OR 'yes'
    return True
return False

이것이이 in예제 의 사용법을 더 잘 이해하는 데 도움이되기를 바랍니다 .


답변

집합은 dicts와 다르게 동작하므로 issubset ()과 같은 집합 연산을 사용해야합니다.

>>> k
{'ip': '123.123.123.123', 'pw': 'test1234', 'port': 1234, 'debug': True}
>>> set('ip,port,pw'.split(',')).issubset(set(k.keys()))
True
>>> set('ip,port,pw'.split(',')) in set(k.keys())
False


답변