我是不是该;
a = range(100)
old_list = filter(lambda x: x not in a, old_list)
a = range(200)
old_list = filter(lambda x: x not in a, old_list)
Run Code Online (Sandbox Code Playgroud)
要么:
a = range(100)
old_list = filter(lambda x: x not in a, old_list)
a[:] = range(200)
old_list = filter(lambda x: x not in a, old_list)
Run Code Online (Sandbox Code Playgroud)
更重要的是,它重要吗?在第一个,是一个被释放的元素,是他们的引用计数0?或者程序仍然需要引用它.如果是这样,我完全覆盖了第二个例子中的引用.
两种方式都有效.它们之间有一个微妙的区别:
a
.a
.以下两个片段展示了不同之处:
# #1
a = range(3)
b = a
a = range(5)
print b
# #2
a = range(3)
b = a
a[:] = range(5)
print b
Run Code Online (Sandbox Code Playgroud)
第一个打印出来
[0, 1, 2]
Run Code Online (Sandbox Code Playgroud)
而第二个打印出来
[0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2180 次 |
最近记录: |