许多 Python 的列表方法在原地运行并返回None
(在我的脑海中,, insert
, sort
, reverse
)。
但是,有一种行为经常让我感到沮丧。如果我创建一个通常返回一个对象的新列表,并同时在其上插入,则新列表“消失”:
mytup = (0, 1, 2, 3, 4)
print mytup # (0, 1, 2, 3, 4)
mylist = list(mytup)
print mylist # [0, 1, 2, 3, 4]
newlist = list(mytup).insert(0, 10)
print newlist # None
所以如果我想修改一个元组,它需要更多的行:
newlist = list(mytup)
newlist.insert(0, 10)
print newlist # [10, 0, 1, 2, 3, 4]
所以我有两个问题:
- 是否正确地说,当我调用列表构造函数时,它会返回对象,但是当我调用带有方法的列表构造函数时,该方法会“覆盖”返回值
None
?再一次,清单去哪儿了? - 有没有办法插入一个元组并在一行中返回一个列表?我不是想打代码高尔夫,我只是认为这两条线在逻辑上没有足够的差异,值得分开。