(
Python 3.5).
问题陈述:给定一个返回项目或项目列表的函数,是否有一个单行语句可以从调用上述函数的结果初始化一个新列表?
详细信息:我查看了python列表上的文档,并在repl上尝试了一些内容,但我似乎无法想出这个.
我正在调用一个读取xml文档的第三方函数.该函数有时会返回一个列表,有时会返回一个项目(取决于存在多少个xml条目).
出于我的目的,我总是需要一个可以迭代的列表 – 即使它是一个长度.下面的代码正确地完成了我想要的.鉴于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
提前致谢,
SteveJ