如何检查Python列表中是否存在元组?
我是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 输出为空 那么如何做到这一点呢?下面是一个例子: >>> [
[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你能告诉我现在怎么做吗。。?