将列表中的元组与另一个元组进行比较

时间:2018-09-25 14:36:27

标签: python list tuples

我有一个元组列表。我想选择列表中的每个元组,并将其与我定义的另一个元组进行比较。

我使用的代码如下;

list1 = [(3, 4), (4, 5), (5, 6)]
for item in list1:
   if list1[item] == (4,5)
      print ("OK")

但它表示列表索引必须是整数或切片。如果我想将列表中的每个元组与另一个元组进行比较,应该如何编码?

请帮助我!

5 个答案:

答案 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:
        ....
相关问题