我有两个清单
a = [1,2,3]
b = []
Run Code Online (Sandbox Code Playgroud)
如果满足某个条件,我想从列表 a 中移动一个元素。
a = [1,3]
b = [2]
Run Code Online (Sandbox Code Playgroud)
下面的代码显示了一个示例,但是,我想在单个循环中执行此操作。我如何更有效地做到这一点?
a = [1,2,3]
b = []
pop_list = []
for i in range(len(a)):
if a[i] == 2:
print("pop:", a[i])
pop_list.append(i)
for i in range(len(pop_list)):
b.append(a.pop(pop_list[i]))
# Reset pop_list
pop_list=[]
Run Code Online (Sandbox Code Playgroud)
理想情况下,我不会生成新列表 b。
一对列表推导式可以完成这项工作:一个为 选择所需的元素b,另一个将它们从a
b = [i for i in a if i == 2]
a = [i for i in a if i != 2]
Run Code Online (Sandbox Code Playgroud)