![](/img/trans.png)
[英]How to Check whether a element exists in a python dictionary value which is a list?
[英]How to check whether a tuple exists in a Python list?
我是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
如果你需要這么做很多時候考慮使用set
,因為它有一個更快的收容檢查。
代碼不起作用,因為'1' != 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
(但是如上所述使用in
或sets更好)
在我的解釋器(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
轉換為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
這段代碼對我來說很好:
>>> 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]
>>>
我不確定你的代碼有什么問題。 肯定你在第一行中缺少']'。
不要忘記[a,b]不是python中的[b,a]所以如果你想考慮[A,B]和[B,A]是相同的,你可能想要在你的元組中排序2個值:
如果列表很大且有冗余,您可能還想使用set(your_list)。
在您的代碼示例中,您將比較整數和字符串:
['1', '2'] # this is a 2-list of strings '1' and '2'
[1, 2] # this is a 2-list of integers 1 and 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.