编程语言
首页 > 编程语言> > Python,使用部分匹配测试集合中成员资格的简明方法

Python,使用部分匹配测试集合中成员资格的简明方法

作者:互联网

什么是pythonic方法来测试是否有一个元组从集合中的另一个元组开始?实际上,我真的在匹配索引之后,但我可以从测试示例中找到答案

例如:

c = ((0,1),(2,3))
# (0,) should match first element, (3,)should match no element

我应该添加我的python是2.4和/或2.5

谢谢

解决方法:

编辑:
感谢OP对问题的补充说明.
S.Mark’s nested list comprehensions是相当邪恶的;检查一下.

我可能会选择使用辅助功能:

def tup_cmp(mytup, mytups):
    return any(x for x in mytups if mytup == x[:len(mytup)])

>>> c = ((0, 1, 2, 3), (2, 3, 4, 5))
>>> tup_cmp((0,2),c)
False
>>> tup_cmp((0,1),c)
True
>>> tup_cmp((0,1,2,3),c)
True
>>> tup_cmp((0,1,2),c)
True
>>> tup_cmp((2,3,),c)
True
>>> tup_cmp((2,4,),c)
False

原始答案:
使用list-comprehension为你工作吗?:

c = ((0,1),(2,3))

[i for i in c if i[0] == 0]
# result: [(0, 1)]

[i for i in c if i[0] == 3]
# result: []

列表编号为introduced in 2.0.

标签:python,collections,membership
来源: https://codeday.me/bug/20190606/1191005.html