我有一个组合列表(比如5位数的密码),并且只想要那些包含1,2和3的组合。看着这里,但似乎没有找到任何原因。
if 1 in combination and 2 in combination and 3 in combination:
这似乎有效,但我确信有一种更有效的方式,因为我很难看。
答案 0 :(得分:5)
如果combination
是一个集合,您可以执行子集检查:
if {1, 2, 3} <= combination:
否则,你可以这样做:
if all(x in combination for x in (1, 2, 3)):
答案 1 :(得分:0)
您可以将mobination
转换为字符串,然后查看intersaction
中的set
。
>>> combination = '456'
>>> needed = '123'
>>> set(needed) & set(combination)
set([])
>>> combination = '156'
>>> set(needed) & set(combination)
set(['1'])
如果您从intersection
获得价值回报,那么您所需的价值就在combination
。