Python的insert返回None?

2024-03-28 09:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

#!/usr/bin/python

numbers = [1, 2, 3, 5, 6, 7]

clean = numbers.insert(3, 'four')

print clean
# desire results [1, 2, 3, 'four', 5, 6, 7]

我得到的是“没有”。我做错了什么


Tags: cleanbinusrresultsfourinsertprintnumbers
3条回答

列表上的变异方法倾向于返回None而不是像您所期望的那样返回修改后的列表——这种方法通过修改列表而不是构建并返回一个新列表来实现其效果。因此,print numbers而不是print clean将向您显示修改后的列表

如果您需要保持numbers完整,请先制作一份副本,然后更改副本:

clean = list(numbers)
clean.insert(3, 'four')

这具有您想要的总体效果:numbers未更改,clean是更改的列表

list.insert()运算符不返回任何内容,您可能需要的是:

print numbers

insert方法就地修改列表,不返回新引用。尝试:

>>> numbers = [1, 2, 3, 5, 6, 7]
>>> numbers.insert(3, 'four')
>>> print numbers
[1, 2, 3, 'four', 5, 6, 7]

相关问题 更多 >