2017-05-22 2 views
1

대 문자열의 상위 내가 ss라는 간단한 set 변수가 있습니다파이썬 - 목록

ss 
Out[5]: {'a', 'ab'} 

사람이 다음과 같은 3 개 출력을 설명해 주시겠습니까 :

ss.issuperset('a') 
Out[6]: True 

ss.issuperset('ab') 
Out[7]: False 

ss.issuperset(['ab']) 
Out[8]: True 

가 감사를!

답변

3

이 명확성을 위해 이전의 대답은 단지 확장입니다 ...

ss.issuperset('ab')은 조금 혼란 스러울 수있는 ss.issuperset(set('ab'))로 해석됩니다 때문에 다음과 같은 코드를 고려하는 경우 :

>>> sss = set('ab') 
>>> sss 
set(['a', 'b']) 

집합 ('ab')이 설정되었음을 알 수 있습니다 ([ 'a', 'b']). 지금은 ss 슈퍼 세트 set(['a', 'b'])입니까? no는 ss'b'을 포함하지 않으므로 False입니다.

set('ab')set(['a', 'b'])로 해석되는 이유는 set() 인수로서 의 Iterable 오브젝트를 허용한다는 것이다 위에 set() 반복하여 차례로 원소를 첨가하면서 반복 가능한 통과. Python 및 기타 여러 언어에서 문자열으로 표시되고이고 문자는이며 __iter__ 함수를 제공합니다.

당신이로() 설정 [ 'AB'를] 통과하면

: set(['ab'])는 문 set(list('ab'))에 해당하며이 경우 반복자는 목록 아닌 문자열 'ab'입니다.

+1

좋은 답변입니다. @ S.M.Styvane이 처음 대답 한 이유만으로 대답했습니다. –

+0

좋은 답변입니다. 'set ('ab')'가'set ([ 'a', 'b'])'와 동등한 이유를 설명해 주시겠습니까? (set과 iterable을 인수로 취해서 ...) – kazemakase

+0

물론 ... 나는 그것을 시험해 보았다. ... 그것을 검토해 주시면 고맙겠습니다! Thx – Ouss