我经常发现自己编写这样的代码:
tupla = (1, 2, 3, 4)
if (1 in tupla) and (4 in tupla):
...
是否有任何Pythonic方式可以更紧凑地编写,而无需两次输入tupla
?
答案 0 :(得分:5)
if all(x in tupla for x in list_of_x):
或
if set(list_of_x).issubset(set(tupla)):
第一个x
不在tupla
时,第一个会停止。第二个将在任何情况下创建两个集合。
答案 1 :(得分:2)
您的代码所要求的基本上是
[1,4]是
tupla
的子集吗?
您可以直接表达此问题:
In [14]: set([1, 4]).issubset(tupla)
Out[14]: True
In [15]: set([1, 4, 7]).issubset(tupla)
Out[15]: False
或更简洁:
In [18]: set([1, 4]) <= set(tupla)
Out[18]: True
In [19]: set([1, 4, 7]) <= set(tupla)
Out[19]: False