Python - 将List转换为Tuple并进行比较(for循环)

时间:2013-12-16 15:24:24

标签: python list tuples

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))

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

  

回溯(最近一次调用最后一次):文件“”,第16行,中      文件“”,第5行,运行TypeError:'tuple'对象   不支持项目分配

2 个答案:

答案 0 :(得分:1)

您可以使用tuple这样的函数将列表转换为元组

tuple(lst)

要检查列表和元组是否相同,您只需执行此操作

return tuple(lst) == tup

答案 1 :(得分:1)

这是因为元组是不可变的,它们内部的数据不能被变异

示例:

>>> 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 = []

如果您需要将列表转换为元组,则可以使用内置的tuple()函数

有关详情,建议您阅读documentation