Python 将列表中的一个元组与另一个元组进行比较
我有一个元组列表。我想选取列表中的每个元组,并将其与我定义的另一个元组进行比较 我使用的代码如下Python 将列表中的一个元组与另一个元组进行比较,python,list,tuples,Python,List,Tuples,我有一个元组列表。我想选取列表中的每个元组,并将其与我定义的另一个元组进行比较 我使用的代码如下 list1 = [(3, 4), (4, 5), (5, 6)] for item in list1: if list1[item] == (4,5) print ("OK") 但它说列表索引必须是整数或切片。如果我想将列表中的每个元组与另一个元组进行比较,我应该如何编码 请帮帮我 您可以通过以下方式实现 list1 = [(3, 4), (4, 5), (5, 6)] for
list1 = [(3, 4), (4, 5), (5, 6)]
for item in list1:
if list1[item] == (4,5)
print ("OK")
但它说列表索引必须是整数或切片。如果我想将列表中的每个元组与另一个元组进行比较,我应该如何编码
请帮帮我 您可以通过以下方式实现
list1 = [(3, 4), (4, 5), (5, 6)]
for item in range(len(list1)):
if list1[item] == (4,5):
print ("OK")
else:
continue
你可以通过以下方法实现它
list1 = [(3, 4), (4, 5), (5, 6)]
for item in range(len(list1)):
if list1[item] == (4,5):
print ("OK")
else:
continue
您可以只测试元组(
(4,5)
,在下面的示例中)是否在列表中:
if (4, 5) in list1:
print('OK')
不需要显式循环
如果要检查多个元组,我建议您使用s:
cmp=set((4,5,5,6)))
如果cmp<设置(列表1):
打印('确定')
这将检查两个元组是否在原始列表中至少出现一次。您可以测试元组(
(4,5)
,在下面的示例中)是否在列表中:
if (4, 5) in list1:
print('OK')
不需要显式循环
如果要检查多个元组,我建议您使用s:
cmp=set((4,5,5,6)))
如果cmp<设置(列表1):
打印('确定')
这将检查两个元组是否在原始列表中至少出现一次。请尝试以下操作:
list1 = [(3, 4), (4, 5), (5, 6)]
for item in list1:
if item == (4,5):
print ("OK")
试试这个:
list1 = [(3, 4), (4, 5), (5, 6)]
for item in list1:
if item == (4,5):
print ("OK")
另一种解决方案:
for i in list1:
if i==(4,5):
print("Ok")
else:
....
另一种解决方案:
for i in list1:
if i==(4,5):
print("Ok")
else:
....
如果只有一个元组要检查,则不需要循环。如果
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)]
,这不是索引列表的正确方法,因此您获得了索引器如果只有一个元组要检查,则不需要执行循环。如果
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)]
这不是为列表编制索引的正确方法,因此您得到了索引器
请使用正确的缩进重新发送并发送回溯。错误消息的原因是,您希望列表中的项目设置:将项目
设置为一系列数字,然后用作列表中的下标list1[项目]
。但是,
中的并不是这样工作的。第一次通过循环时,item
不是0
,而是list1[0]
。这就是为什么解释器抱怨它需要一个整数:list1[item]
与list1[(4,5)]
相同。你真正想要的是(4,5)
。因此,正如一个答案所指出的,将list1[item]
更改为item
@BoarGules——这是一个很好的解释。。。我明白了,多亏了你!我仍然是python初学者,您的想法启发了我。请使用正确的缩进重新发送并发送回溯。错误消息的原因是,您希望列表中的项:
设置item
为一系列数字,然后在list1[item]
中用作列表下标。但是,
中的并不是这样工作的。第一次通过循环时,item
不是0
,而是list1[0]
。这就是为什么解释器抱怨它需要一个整数:list1[item]
与list1[(4,5)]
相同。你真正想要的是(4,5)
。因此,正如一个答案所指出的,将list1[item]
更改为item
@BoarGules——这是一个很好的解释。。。我明白了,多亏了你!我仍然是python初学者,您的想法启发了我。在python中有更好的方法来循环容器。例如,您可以对列表1中的tup执行:
没错,这是最快想到的解决方案。介意在另一个答案中发布这个吗?我很乐意投它一票up@Cut7er我感谢你的努力!有更好的方法可以在Python中循环容器。例如,您可以对列表1中的tup执行:
没错,这是最快想到的解决方案。介意在另一个答案中发布这个吗?我很乐意投它一票up@Cut7er我感谢你的努力!Thanx很多。取决于实际的程序,如果您想重复,这将无法按预期工作。@SVengat不确定我是否理解。。。什么会被重复,因此不起作用?如中所示,如果您希望每次都打印(“确定”),则此程序将不适用。取决于实际程序,如果您希望重复,则无法按预期工作。@SVengat不确定我是否理解。。。什么会被重复,因此不起作用?如中所示,如果您想为每次事件打印(“确定”),此程序将不适用。