如何在 Python 中返回未打包的列表?

Posted

技术标签:

【中文标题】如何在 Python 中返回未打包的列表?【英文标题】:How to return an unpacked list in Python? 【发布时间】:2016-10-10 11:11:03 【问题描述】:

我正在尝试在 python 中做这样的事情:

def f():
    b = ['c', 8]
    return 1, 2, b*, 3

我希望 f 返回元组 (1, 2, 'c', 8, 3)。我找到了一种使用itertools 后跟tuple 的方法,但这不是很好,我想知道是否存在一种优雅的方法来做到这一点。

【问题讨论】:

【参考方案1】:

解包运算符* 出现在b 之前,而不是之后。

return (1, 2, *b, 3)
#      ^      ^^   ^

但是,这仅适用于 Python 3.5+ (PEP 448),您还需要添加括号以防止 SyntaxError。在旧版本中,使用+ 连接元组:

return (1, 2) + tuple(b) + (3,)

如果b 已经是元组而不是列表,则不需要tuple 调用:

def f():
    b = ('c', 8)
    return (1, 2) + b + (3,)

【讨论】:

以上是关于如何在 Python 中返回未打包的列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PyList 在 Python C API 扩展中返回整数列表?

Python 和 Flask 如何返回列表? [复制]

如何比较python中的两个列表并返回匹配项

如何在mac上的python中导入非标准包?此软件包不支持pip安装

如何在列表中获取特定值的索引 - python [重复]

如何在 electron.js 中修复“跳过 checkForUpdatesAndNotify,因为应用程序未打包”