1

次のスクリプトを検討してください。

# 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

これらの if-else 条件は、a) i <= singleFrozenset および b) len(i) == 1 の 2 つのケースをチェックしています。2 番目の条件は単純です。ただし、一致するケースが 1、4、6、および 7 である最初の条件を理解できませんでした。これらのケースでは、これらの凍結セット間のリンクを見つけることができませんでした! 理由はありますか?

4

1 に答える 1

4

セット演算子<=.issubset()メソッドに相当します。A <= BA の各要素が B にも属している場合に限り、真です。

于 2017-01-05T03:26:30.517 に答える