当前位置: 首页 > 知识库问答 >
问题:

在Python中将列表转换为元组

桑博远
2023-03-14

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

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

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

但是,当我运行代码时,它会产生一条错误消息:

TypeError:“tuple”对象不可调用

我如何解决这个问题?

共有3个答案

薛云瀚
2023-03-14

为元组(l)添加另一种替代方法,如Python

t = *l,  # or t = (*l,) 

简而言之,速度会快一点,但可能会影响可读性。

这实际上是在元组文本中解压列表l,元组文本是由于存在单个逗号而创建的。

注意:您收到的错误是由于屏蔽了名称元组,即您在某个位置分配了名称元组,例如元组=(1,2,3)

使用del tuple你应该可以走了。

宰父飞翼
2023-03-14

根据eumiro的注释展开,通常tuple(l)会将列表l转换为一个tuple:

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

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

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

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

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'>
林弘文
2023-03-14

它应该很好用。不要使用元组列表或其他特殊名称作为变量名。这可能是造成你问题的原因。

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

>>> tuple = 'whoops'   # Don't do this
>>> tuple(l)
TypeError: 'tuple' object is not callable
 类似资料:
  • 问题内容: 我如何转换 至 问题答案: 使用简单的列表理解: 会给你:

  • 问题内容: 我已经编写了此函数,用于将元组列表转换为列表列表。有没有更优雅的/ Pythonic的方式来做到这一点? 问题答案: 您可以使用列表推导:

  • 问题内容: 将元组列表转换为字符串的最Python方式是哪种? 我有: 而且我要: 我对此的解决方案是: 有没有更Python的方式来做到这一点? 问题答案: 您可能想使用一些简单的方法,例如: ..这很方便,但不能保证能正常工作

  • 问题内容: 我正在尝试将嵌套列表列表转换为Python 3.3中的元组列表。但是,似乎我没有这样做的逻辑。 输入如下所示: 所需的输出应如下所示: 问题答案: 只需使用列表理解即可: 演示:

  • 问题内容: 假设我a在Python中有一个列表,其条目方便地映射到字典。每个偶数元素代表字典的键,后面的奇数元素是值 例如, 我想将其转换为字典b, 语法上最干净的方法是什么? 问题答案: 如果很大,则可能需要执行以下操作,而不会像上面那样创建任何临时列表。 在Python 3中,您也可以使用理解,但具有讽刺意味的是,我认为最简单的方法是使用,通常是代码味道。 因此,尽管EOL在注释中指出,该方法

  • 问题内容: 我是Python的新手,需要将列表转换为字典。我知道我们可以将元组列表转换为字典。 这是输入列表: 并且我想将此列表转换为元组列表(或直接转换为字典),如下所示: 我们如何在Python中轻松做到这一点? 问题答案: 您想一次将三个项目分组吗? 您想一次分组N个项目吗?