gpt4 book ai didi

Python:从返回单个项目或另一个列表的函数创建列表

转载 作者:太空狗 更新时间:2023-10-30 02:17:42 24 4
gpt4 key购买 nike

( python 3.5)。

问题陈述:给定一个返回一个项目或项目列表的函数,是否有单行语句可以根据调用上述函数的结果初始化一个新列表?

详细信息:我查看了 python 列表上的文档,并在 repl 上尝试了一些东西,但我似乎无法弄清楚这一点。

我正在调用读取 xml 文档的第三方函数。该函数有时会返回一个列表,有时会返回单个项目(取决于存在多少 xml 条目)。

出于我的目的,我总是需要一个可以迭代的列表 - 即使它的长度为 1。下面的代码正确地完成了我想要的。然而,鉴于 Python 的优雅,它似乎很笨重。我怀疑有一种单线的方法可以做到这一点。

def force_list(item_or_list):
"""
Returns a list from either an item or a list.
:param item_or_list: Either a single object, or a list of objects
:return: A list of objects, potentially with a length of 1.
"""
if item_or_list is None: return None
_new_list = []
if isinstance(item_or_list, list):
_new_list.extend(item_or_list)
else:
_new_list.append(item_or_list)
return _new_list

提前致谢,史蒂夫杰

最佳答案

如果您正在寻找有关列出函数调用结果的单行代码:

假设有一个名为 func 的函数返回一个项目或项目列表:

elem = func()
answer = elem if isinstance(elem, list) else [elem]

也就是说,你真的应该重构 func 来返回一种类型的东西——让它返回一个包含许多元素的列表,或者在它只返回一个元素的情况下,让它返回一个列出该元素。因此你可以避免这种类型检查

关于Python:从返回单个项目或另一个列表的函数创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39375420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com