【发布时间】:2013-08-12 20:33:39
【问题描述】:
我如何询问字符串模式(在本例中为 C)是否存在于该集合的任何元素中,而无需删除它们并查看它们?
这个测试失败了,我不知道为什么。我的猜测是 Python 正在检查集合中是否有任何元素 is C,而不是是否有任何元素 contains 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
但这不是我在这种情况下想要做的。好的,谢谢你的帮助!
编辑
对不起,这些是集合操作,不是我原帖所暗示的。
【问题讨论】:
-
如果您不查看每个值,您将如何发现?
-
迭代可以作为实现完成,但根据我的代码需要,我只想问
x in y? -
所以您正在寻找部分匹配,而不是完全匹配?编写一个
partialIn函数来遍历列表并进行比较。in尝试匹配整个元素。 -
@RobertHarvey 谢谢,我相信这也行。我认为这是因为我对 Python 不够熟悉,还没有考虑到
any()函数。
标签: python python-3.x iteration