2017-08-10 1 views
0

Python 2.7の動作を教えてもらえますか? (可能であれば、より堅牢な選択肢)Pythonの文字列のセット__sub__

>>> base = set(['blub', 'a']) 
>>> print base - set('a') 
set(['blub']) 
>>> print base - set('blub') 
set(['a', 'blub']) # wtf? 

これには何の答えも見つかりませんでした。

ありがとうございました!

答えて

0

これは、pythonがセットの作成のために文字列を処理するために必要です。違い:期待通りにあなたが見ることができるように、Pythonはセットで単一のエントリとして文字列の各文字を解釈

>>> base = set(['blub', 'a']) 
>>> set('a') 
set(['a']) 
>>> set('blub') 
set(['b', 'u', 'l']) 

は、そのための操作は動作しません。

set('blub')set(['blub'])に変更すると、期待通りにセットが作成され、操作が機能します。

>>> set(['blub']) 
set(['blub']) 
>>> print base - set('a') 
set(['blub']) 
>>> print base - set(['blub']) 
set(['a']) 
>>> 
+0

ありがとうございました! –