这是一个简单的程序:
#!/usr/bin/env python3
l = list(range(5))
print(l, type(l))
l = list(range(5)).remove(2)
print(l, type(l))
Run Code Online (Sandbox Code Playgroud)
由于某种原因,列表在删除元素时被销毁:
[0, 1, 2, 3, 4] <class 'list'>
None <class 'NoneType'>
Run Code Online (Sandbox Code Playgroud)
(是节目输出)
我希望它输出
[0, 1, 3, 4]
Run Code Online (Sandbox Code Playgroud)
有什么问题,如何从生成的列表中删除元素range?
您正在存储list.remove()呼叫的返回值,而不是列表本身.该list.remove()调用改变了列表并返回None.它并没有返回的改变列表.
首先存储列表:
l = list(range(5))
l.remove(2)
Run Code Online (Sandbox Code Playgroud)
或使用列表理解来过滤:
l = [i for i in range(5) if i != 2]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6870 次 |
| 最近记录: |