【发布时间】:2019-10-09 18:59:03
【问题描述】:
我在 Python 中创建不同的字符串集时遇到了以下特殊行为:
set(['a', 'b']) - set(['a']) # results in {'b'} as expected
set(['a', 'b']) - set('a') # results in {'b'} as expected
set(['a.', 'b']) - set(['a.']) # results in {'b'} as expected
set(['a.', 'b']) - set('a.') # surprisingly results in {'a.', 'b'}!
为什么在最后一种情况下是 'a.'是不是从集合中减去?由于第二种和第四种情况之间的区别是点,我认为这是罪魁祸首。使用双引号会产生相同的行为。
【问题讨论】:
-
set('a.') = {'.', 'a'},所以我不确定我是否会称这种行为令人惊讶 -
你看到
set('a.')是什么了吗?这是带有字符串'a'和'.'的集合
标签: python string set set-difference