4 回答
TA贡献1799条经验 获得超9个赞
一对列表推导式即可完成这项工作:一个用于选择 所需的元素b,另一个用于从中删除它们a
b = [i for i in a if i == 2]
a = [i for i in a if i != 2]
TA贡献1853条经验 获得超18个赞
您可以对filter两者itertools.filterfalse使用相同的过滤函数:
from itertools import filterfalse
a = [1,2,3]
b = []
list(filterfalse(lambda x: x == 2, a))
list(filter (lambda x: x == 2, a))
[1, 3]
[2]
TA贡献2021条经验 获得超8个赞
如果该元素x存在,您可以将其从 中删除b并将其附加到a.
a = [1, 2, 3]
b = []
x = 2
def remove_append(a, b, x):
if x in a:
a.remove(x)
b.append(x)
remove_append(a, b, x)
print(a)
print(b)
输出:
[1, 3]
[2]
TA贡献1818条经验 获得超11个赞
我们必须遍历所有元素,但是,您可以应用此技巧在一个循环中添加到适当的列表:
(追加到循环比删除任意位置的元素更有效)
a = [1,2,3]
condition_false, condition_true = [], []
for v in a:
# Add to the right list
(condition_false, condition_true)[v == 2].append(v)
# [1, 3]
print(condition_false)
# [2]
print(condition_true)
添加回答
举报