在Python中将列表转换为元组

Converting list to tuple in Python

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
7
8
9
>>> list=['a','b']
>>> tuple=tuple(list)
>>> list.append('a')
>>> print(tuple)
('a', 'b')
>>> another_tuple=tuple(list)
Traceback (most recent call last):
  File"<stdin>", line 1, in <module>
TypeError: 'tuple' object is not callable

为什么不能将列表"list"转换为元组?


不要在类后命名变量。在您的示例中,您可以同时使用listtuple

您可以重写如下:

1
2
3
4
lst = ['a', 'b']
tup = tuple(lst)
lst.append('a')
another_tuple = tuple(lst)

逐行解释

  • 创建一个包含2个项目的可变对象列表。
  • 将列表转换为一个不可变对象的元组,然后赋给一个新变量。
  • 取原始列表并附加一个项目,这样原始列表现在有3个项目。
  • 从新列表中创建一个元组,返回3个项的元组。
  • 您发布的代码不能按预期工作,因为:

    • 当您调用another_tuple=tuple(list)时,python试图将在第二行中创建的tuple作为一个函数。
    • tuple变量不可调用。
    • 因此,python使用TypeError: 'tuple' object is not callable退出。