我如何询问字符串模式(在本例中为 C)是否存在于该集合的任何元素中,而无需逐一删除它们并查看它们?
这个测试失败了,我不知道为什么。我的猜测是 Python 正在检查集合中是否有任何元素是 C,而不是检查是否有任何元素包含 C:
n [1]: seto = set()
In [2]: seto.add('C123.45.32')
In [3]: seto.add('C2345.345.32')
In [4]: 'C' in seto
Out[4]: False
我知道我可以迭代它们以进行此检查:
In [11]: for x in seto:
if 'C' in x:
print(x)
....:
C2345.345.32
C123.45.32
但这不是我在这种情况下想要做的。好的,感谢您的帮助!
编辑
对不起,这些是集合操作,不是我原帖暗示的列表。
请您参考如下方法:
'C' in seto
这会检查 seto 的任何成员是否是确切的字符串 'S'。不是子字符串,而是那个字符串。要检查子字符串,您需要遍历集合并对每个项目执行检查。
any('C' in item for item in seto)
测试的确切性质可以很容易地改变。例如,如果您想对 C 的出现位置进行更严格的限制:
any(item.startswith('C') for item in seto)
