Python 列表理解:如果列表只包含一个元素则取消列出

Python list comprehension: Unlist if list contains only one element

我有以下功能:

output_names = [output.name for output in session.get_outputs()]

session.get_outputs() 可以 return 多个对象,我想从中获取名称 属性。如果列表的长度是1,我想output_names是一个值,而不是一个只有一个值的列表。

output_names = [output.name for output in session.get_outputs()]
if len(output_names) == 1:
    output_names = output_names[0]

我可以这样做,但这感觉像是代码的味道。有没有更优雅的方法来解决这个问题?

如何调整您构造 output_names 的方式,例如:

outputs = session.get_outputs()
output_names = [output.name for output in outputs] if len(outputs)>1 else outputs.name

也就是说,混合数据类型是不可取的,imo。