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

How to check whether a tuple exists in a Python list?

我对python不太熟悉,我试图检查一对[a,b]是否存在于清单l=[[a,b],[c,d],[d,e]]中。我找了很多问题,但找不到确切的答案。有人能告诉我怎么做吗?

当我跑步时:

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

输出为空

那么,如何实现这一目标呢?


这里是一个例子:

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

如果你需要做很多考虑使用一个set时代,因为它有多快遏制检查。


的代码不工作,因为'1' != 1和,因此,['1','2'] != [1,2]如果你想尝试的工作:

1
2
3
4
5
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

(我已经提到或使用in集为的是更好的)


不要忘了,〔a,b〕〔a〕B是在Python,所以你可能想在你的2阶值的元组,如果你想考虑〔a,b〕和〔B〕是一样的:

所以,你可能想使用的设置(如果您的_列表的列表),它是大的和冗余的。

在你的代码的例子:你compaing整数和字符串

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

本代码为我的作品:精细

1
2
3
4
5
6
7
8
9
10
>>> a = [[1, 2], [3, 4], [13, 11]]
>>>
>>> for i in range(10):
...         for j in range(10):
...                 if [i, j] in a:
...                         print [i, j]
...
[1, 2]
[3, 4]
>>>

我不知道问题是什么,你的代码。当然,你必须在第一行"失踪"]。


在我(ipython 0.10,Python解释器可以+)代码给正确的输出:

1
2
3
4
5
6
7
8
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的评论,但我不能离开呢。)

编辑:

原来你有一a字符串列表。然后你需要转换您的ints到str为好:

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