Skip to main content
 首页 » 编程设计

Python设置字符串的差异

2025年05月04日2098°冷暖

我在 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.'不从集合中减去?由于第二种情况和第四种情况之间的区别是点,我认为这是罪魁祸首。使用双引号会产生相同的行为。

请您参考如下方法:

您的最后一组被解释为 {'a', '.'}。所以你的设置操作不会排除 'a.'

这是因为 set 会遍历输入,而字符串的迭代是通过 char 进行的。