-
www说
您可以使用“del”关键字。即,del listA[i]. 但是,您不应该这样做,原因有两个:从列表中删除随机元素效率不高在迭代列表时不应该改变列表。如果我在迭代列表时修改列表,会发生以下情况,请注意它没有看到 2 个元素!>>> a = [1, 2, 3, 4]>>> for i, x in enumerate(a):... print(x)... del a[i]... 13最好创建一个临时列表,例如 tmp_listA,附加到它,然后将其替换为原始列表。请勿修改原件。看起来是这样的:listA = [1,3,10,12,50,52]listB = []tmpA = []for i in range(len(listA)): val = listA[i] if val > 10: listB.append(val) else: tmpA.append(val)listA = tmpAprint(listA, listB)
-
RISEBY
给出替代方法:listA = [1,3,10,12,50,52]listB = [x for x in listA if not x>10]listA = [x for x in listA if x>10]print(listB)# [1, 3, 10]print(listA)# [12, 50, 52]```
-
芜湖不芜
我会使用简单的列表理解。listA = [1, 3, 10, 12, 50, 52]listB = [item for item in listA if item > 10]listA = [item for item in listA if item not in listB]print(listA, listB)#[1, 3, 10] [12, 50, 52]
-
慕慕森
这是一种更简单、更易读、直接的方法。listA = [1,3,10,12,50,52]listB = []listA2 = []for val in listA: if val > 10: listB.append(val) else: listA2.append(val)listA = listA2print(listA, listB)输出:[1, 3, 10] [12, 50, 52]
-
精慕HU
您可以通过使用来做到这一点list.remove(value)listA = [1,3,10,12,50,52,2,10,3,34]listB = []for i in range(len(listA)): if listA[i] > 10: listB.append(listA[i])for val in listB: listA.remove(val)print(listA, listB)