如何检查Python列表中是否存在元组?

如何检查Python列表中是否存在元组?,python,list,exists,Python,List,Exists,我是Python新手,我正在尝试检查列表中是否存在一对[a,b],l=[[a,b],[c,d],[d,e]。我搜索了许多问题,但找不到确切的答案。有人能告诉我做这件事的正确和最短的方法吗 当我跑步时: a=[['1','2'],['1','3']] for i in range(3): for j in range(3): if [i,j] in a: print a 输出为空 那么如何做到这一点呢?下面是一个例子: >>> [

我是Python新手,我正在尝试检查列表中是否存在一对
[a,b]
l=[[a,b],[c,d],[d,e]
。我搜索了许多问题,但找不到确切的答案。有人能告诉我做这件事的正确和最短的方法吗

当我跑步时:

a=[['1','2'],['1','3']]
for i in range(3):
    for j in range(3):
        if [i,j] in a:
            print a
输出为空

那么如何做到这一点呢?

下面是一个例子:

>>> [3, 4] in [[2, 1], [3, 4]]
True

如果您需要做很多次,请考虑使用<强>代码>设置/代码> <强> >,因为它有一个更快的包容检查。

<>在我的解释器(IPython 0.10,Python 2.7.2+)中,您的代码给出正确的输出:

In [4]: a=[[1,2],[1,3]]

In [5]: for i in range(3):
   ...:         for j in range(3):
   ...:             if [i,j] in a:
   ...:                 print a
   ...: 
[[1, 2], [1, 3]]
(这应该是一个评论,但我还不能离开。)

编辑:

原来在
a
列表中有字符串。 然后您还需要将
int
s转换为
str

a=[['1','2'],['1','3']]
for i in range(3):
    for j in range(3):
        if [str(i), str(j)] in a:
            print a

由于
'1'!=因此,
['1','2']!=[1,2]
如果您想让它工作,请尝试:

a=[['1','2'],['1','3']]
for i in range(3):
    for j in range(3):
        if [str(i), str(j)] in a: # Note str
            print a

(但在中使用<代码>或设置为已提到的更好)

不要忘记[a,b]不是Python中的[b,a],所以如果你想考虑[a,b]和[b,a]是相同的,你可能想要订购2个值:

如果您的列表很大并且有冗余,您可能还希望使用set(您的_列表)

在代码示例中,您正在比较整数和字符串:

['1', '2'] # this is a 2-list of strings '1' and '2'
[1, 2] # this is a 2-list of integers 1 and 2

我正在为范围(3)中的
i使用嵌套循环:
为范围(3)中的j使用
,然后尝试在a
中使用
[i,j]…但它不能识别你的代码对我有效,输出是
[1,2],[1,3]
。啊,在编辑代码之后,很明显,
[1,2]
!=<代码>['1','2']
。对不起,我想要这个,我没有写properly@bereal你能告诉我现在怎么做吗。。?