【问题标题】:How to dynamically unpack a list as you create? [duplicate]如何在创建时动态解包列表? [复制]
【发布时间】:2019-02-08 21:10:04
【问题描述】:

如何通过函数调用创建列表元素?

不确定这是否可行,但我尝试在创建列表时从函数创建列表元素,因为直到运行时我才确定元素

所以我试过这个:

>>>> def make_list_element():
        return 'd, e'

如果我尝试创建一个列表并同时调用该函数:

>>>> a = ['a', 'b', 'c', make_list_element().split(", ")]

我得到:

>>> a
>>> ['a', 'b', 'c', ['d', 'e']]

我怎样才能做到这一点:

>>> a
>>> ['a', 'b', 'c', 'd', 'e'] 

最好在我创建列表时使用相同的语句。

非常感谢

【问题讨论】:

  • 请始终使用通用 python 标签,如果您的问题是关于特定 python 版本的,则可选择包含特定于版本的标签
  • 如果您的函数返回一个列表,那么您将不需要split() 函数,只需要星号

标签: python


【解决方案1】:

在 Python3 中,您可以像这样简单地解包返回的列表:

a = ['a', 'b', 'c', *make_list_element().split(", ") ]

如果您使用的是 Python2,则必须连接或扩展列表:

a = ['a', 'b', 'c'] + make_list_element().split(", ")

a = ['a', 'b', 'c']
a.extend(make_list_element().split(", "))

【讨论】:

  • 感谢您的回答,但 >>> a = ['a', 'b', 'c', *make_list_element().split(", ")] File "<stdin>", line 1 a = ['a', 'b', 'c', *make_list_element().split(", ")] 出现此错误
  • 这似乎工作虽然a = ['a', 'b', 'c'] + make_list_element().split(", ")谢谢
猜你喜欢
  • 2020-08-31
  • 2017-06-25
  • 2023-03-22
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 2011-01-26
相关资源
最近更新 更多