2017-01-05 1 views
0

다음 스크립트를 고려 frozensets :파이썬 : 비교

# multipleSmallFrozensets is a list of 7 frozensets of differenet number of string objects 
multipleSmallFrozensets = [ 
    frozenset({'YHR007C', 'YHR042W'}), 
    frozenset({'YPL274W'}), 
    frozenset({'YCL064C'}), 
    frozenset({'YBR166C'}), 
    frozenset({'YEL041W', 'YJR049C'}), 
    frozenset({'YGL142C'}), 
    frozenset({'YJL134W', 'YKR053C'})] 

# singleFrozenset is a frozenset of 3410 string objects 
singleFrozenset = frozenset({'YIL140W','YLR268W','YLR357W','YJL155C','YHR067W', 
'YAL008W','YBR255W','YFR027W','YGR148C','YJR122W','YJL204C','YJL093C','YLR244C', 
'YNL003C','YBR111W-A', ...}) 

# don't forget that i is of type frozenset [just saying!] 
for i in multipleSmallFrozensets: 
     if i <= singleFrozenset: print "First option entered" 
     elif len(i) == 1: print "Second option entered" 
     else: print "Third option entered" 

과 신비의 출력을한다

First option entered 
Second option entered 
Second option entered 
First option entered 
Third option entered 
First option entered 
First option entered 

이 경우-다른 조건이 이가지 경우가) 내가 < = singleFrozenset,와 b를 확인하는) len (i) == 1. 두 번째 조건은 간단합니다. 그러나 일치하는 사례가 1, 4, 6 및 7 인 첫 번째 조건을 파악할 수 없습니다. 이러한 경우 고정 된 집합간에 링크를 찾을 수 없습니다. 그 이유는 무엇입니까?

+0

참고 : 실제 코드 'singleFrozenset'변수에서 가져온 작은 조각으로 인해 주어진 코드를 복사하여 붙여 넣으면 결과가 달라집니다. – 7kemZmani

답변

1

집합 연산자 <=.issubset() 방법과 동일합니다. A <= B은 A의 각 요소도 B에 속하는 경우에만 true입니다.

+0

마찬가지로 말했다 : A의 _each_ 요소는 또한 B에 속한다. – DyZ