列表中列表()的开销

时间:2016-04-08 15:18:00

标签: python list

在某些样式的python中,一切都是生成器,例如使用yield而不是构建和return列表。如果您需要将其用作列表,则只需拨打list(gen)

即可

如果我已经有一个列表,那么拨打list(my_list)的费用是多少?

使用:我有一个变量,我知道它有一个迭代器,而可能是一个列表,但我需要将它用作列表。进行my_list = list(my_list)或其他方式检查其列表是否更好/更pythonic?

如果重要的是我使用的是Python 3.5。

1 个答案:

答案 0 :(得分:5)

如果您致电list(x),您肯定会创建一个新列表,即使x已经是一个列表。如果您想避免它,可以使用isinstance(x, list)检查x是否为列表。

if not isinstance(x, list):
    x = list(x)