__sub__ Python 中的一组字符串
__sub__ on set of strings in Python
有人可以在这里向我解释 Python 2.7 的行为吗? (如果可能,还有一个更强大的替代方案)
>>> base = set(['blub', 'a'])
>>> print base - set('a')
set(['blub'])
>>> print base - set('blub')
set(['a', 'blub']) # wtf?
找不到任何答案,抱歉。
感谢您的帮助!
这与他们 python 处理用于创建集合的字符串的方式有关。差异:
>>> base = set(['blub', 'a'])
>>> set('a')
set(['a'])
>>> set('blub')
set(['b', 'u', 'l'])
如您所见,python 将字符串的每个字符解释为集合中的单个条目,因此该操作未按预期进行。
如果将 set('blub')
更改为 set(['blub'])
,该集将按预期创建,并且操作有效。
>>> set(['blub'])
set(['blub'])
>>> print base - set('a')
set(['blub'])
>>> print base - set(['blub'])
set(['a'])
>>>
有人可以在这里向我解释 Python 2.7 的行为吗? (如果可能,还有一个更强大的替代方案)
>>> base = set(['blub', 'a'])
>>> print base - set('a')
set(['blub'])
>>> print base - set('blub')
set(['a', 'blub']) # wtf?
找不到任何答案,抱歉。
感谢您的帮助!
这与他们 python 处理用于创建集合的字符串的方式有关。差异:
>>> base = set(['blub', 'a'])
>>> set('a')
set(['a'])
>>> set('blub')
set(['b', 'u', 'l'])
如您所见,python 将字符串的每个字符解释为集合中的单个条目,因此该操作未按预期进行。
如果将 set('blub')
更改为 set(['blub'])
,该集将按预期创建,并且操作有效。
>>> set(['blub'])
set(['blub'])
>>> print base - set('a')
set(['blub'])
>>> print base - set(['blub'])
set(['a'])
>>>