我有一个元组列表。我想选择列表中的每个元组,并将其与我定义的另一个元组进行比较。
我使用的代码如下;
list1 = [(3, 4), (4, 5), (5, 6)]
for item in list1:
if list1[item] == (4,5)
print ("OK")
但它表示列表索引必须是整数或切片。如果我想将列表中的每个元组与另一个元组进行比较,应该如何编码?
请帮助我!
答案 0 :(得分:2)
您不需要循环 IF ,您只需一个元组即可检查。只需使用if
tpl = (4,5) # Single user defined tuple
if tpl in list1:
print ("OK")
如果要检查的很多元组
tuplst = [(3,4), (1,2)] # List of tuples
list1 = [(3, 4), (4, 5), (5, 6)]
for tpl in tuplst:
if tpl in list1:
print ("OK")
代码中的问题是,当您执行list1[item]
时,您尝试执行list1[(3, 4)]
,这不是索引列表的正确方法,因此您得到了IndexError
< / p>
答案 1 :(得分:1)
您可以仅测试元组(以下示例中的{(4, 5)
)是否在列表中:
if (4, 5) in list1:
print('OK')
不需要显式循环。
如果要检查多个元组,建议您使用set
s:
cmp = set(((4, 5), (5, 6)))
if cmp < set(list1):
print('OK')
这将检查两个元组是否在原始列表中至少出现一次。
答案 2 :(得分:1)
尝试一下:
list1 = [(3, 4), (4, 5), (5, 6)]
for item in list1:
if item == (4,5):
print ("OK")
答案 3 :(得分:0)
您可以通过以下方式实现。
list1 = [(3, 4), (4, 5), (5, 6)]
for item in range(len(list1)):
if list1[item] == (4,5):
print ("OK")
else:
continue
答案 4 :(得分:0)
替代解决方案:
for i in list1:
if i==(4,5):
print("Ok")
else:
....