在 Python 中将列表转换为元组

新手上路,请多包涵

我正在尝试将列表转换为元组。

Google 上的大多数解决方案都提供以下代码:

 l = [4,5,6]
tuple(l)

但是,当我运行该代码时,它会出现一条错误消息:

类型错误:“元组”对象不可调用

我该如何解决这个问题?

原文由 LynnH 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 273
2 个回答

它应该工作正常。不要使用 tuple , list 或其他特殊名称作为变量名。这可能是导致您出现问题的原因。

 >>> l = [4,5,6]
>>> tuple(l)
(4, 5, 6)

>>> tuple = 'whoops'   # Don't do this
>>> tuple(l)
TypeError: 'tuple' object is not callable

原文由 root 发布,翻译遵循 CC BY-SA 4.0 许可协议

扩展 eumiro 的评论,通常 tuple(l) 会将列表 l 转换为元组:

 In [1]: l = [4,5,6]

In [2]: tuple
Out[2]: <type 'tuple'>

In [3]: tuple(l)
Out[3]: (4, 5, 6)

但是,如果您将 tuple 重新定义为元组而不是 type tuple

 In [4]: tuple = tuple(l)

In [5]: tuple
Out[5]: (4, 5, 6)

然后你会得到一个 TypeError 因为元组本身是不可调用的:

 In [6]: tuple(l)
TypeError: 'tuple' object is not callable

您可以通过退出并重新启动解释器来恢复 tuple 的原始定义,或者(感谢@glglgl):

 In [6]: del tuple

In [7]: tuple
Out[7]: <type 'tuple'>

原文由 unutbu 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题