Python-将列表转换为元组并进行比较(for循环)

Python-将列表转换为元组并进行比较(for循环),python,list,tuples,Python,List,Tuples,我尝试将列表中的数字转换为元组形式,以便可以与另一个元组进行比较。 但问题是它会返回如下错误: 回溯(最近一次调用):文件“”,第16行,在 文件“”,第5行,运行类型错误:“tuple”对象 不支持项目分配 您可以使用tuple函数将列表转换为tuple,如下所示 def run(lst, tup): tup_1 = () for x in range(len(lst)): tup_1[x] = lst[x] if tup_1[1] == lst[1]

我尝试将列表中的数字转换为元组形式,以便可以与另一个元组进行比较。 但问题是它会返回如下错误:

回溯(最近一次调用):文件“”,第16行,在 文件“”,第5行,运行类型错误:“tuple”对象 不支持项目分配


您可以使用
tuple
函数将列表转换为tuple,如下所示

def run(lst, tup):
    tup_1 = ()
    for x in range(len(lst)):
        tup_1[x] = lst[x]

    if tup_1[1] == lst[1]:
        return True
        for y in range(len(tup_1)):
            if tup_1[y] == tup[y]:
                return "matched"
            else:
                return "not equal"
print run([1,2,3],(1,2,3))
要检查列表和元组是否相同,只需执行以下操作

tuple(lst)

发生这种情况的原因是元组是不可变的,元组中的数据不能进行变异

例如:


因此,请使用列表而不是元组:

>>> l = [1,2,3]
>>> l[1] = 4
>>> l
[1, 4, 3]
如果需要将列表转换为元组,可以使用内置函数


有关更多信息,我建议您阅读

tup_1=tuple(lst)
?我知道它是不可变的,但我尝试使用For循环为它们赋值。目的是检查循环中分配的值,以便进一步验证它。因为IIRC,元组可以赋值,对吗?当它一开始是空的。如果我错了,请纠正我。@vincentChen不。。。不能为元组元素赋值,因为它是不可变的。您可以做的是,您可以使用
+
操作符eah扩展元组,但我正在练习元组,我的目的是使用for循环将列表中的值分配/复制到元组。所以每次循环尝试将值赋给新元组时,我都可以验证它。如果我错了,请纠正我
>>> t = (1,2,3)
>>> t[1] = 4
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> l = [1,2,3]
>>> l[1] = 4
>>> l
[1, 4, 3]
tup_1 = []