如何检查列表中是否有多个字符?

时间:2017-03-03 18:49:18

标签: python

我有一个组合列表(比如5位数的密码),并且只想要那些包含1,2和3的组合。看着这里,但似乎没有找到任何原因。

if 1 in combination and 2 in combination and 3 in combination:

这似乎有效,但我确信有一种更有效的方式,因为我很难看。

2 个答案:

答案 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