有列表lst1=[10,10,6,10,10,2,10,10,10,10,4,10,3,10,8,10,3,10,10]编写程序删除其中所有的“10”
lst1 = [10,10,6,10,10,2,10,10,10,10,4,10,3,10,8,10,3,10,10]
lst1 = [x for x in lst1 if x != 10]
print(lst1)
lst1 = [10, 10, 6, 10, 10, 2, 10, 10, 10, 10, 4, 10, 3, 10, 8, 10, 3, 10, 10]
lst1 = list( filter(lambda x:x!=10,lst1) )
print(lst1)
lst1 = [x for x in lst1 if x != 10]
这是用列表推导式生成一个新列表,里面没有10
但是如果按照字面意义的删除,需要这样做
for i in range(len(lst1)-1,-1,-1):
if lst1[i]==10:
del lst1[i]
#倒序删除,避免索引变化
i=0
while i<len(lst1):
if lst1[i]==10:
del lst1[i]
else:
i+=1
#正序删除
可以使用列表推导式来删除列表中所有的 "10"。
使用了一个列表推导式来创建一个新的列表,该列表中仅包含原列表中不是 "10" 的元素。最后打印输出了新的列表。
lst1 = [10, 10, 6, 10, 10, 2, 10, 10, 10, 10, 4, 10, 3, 10, 8, 10, 3, 10, 10]
lst1 = [i for i in lst1 if i != 10]
print(lst1)
输出:
[6, 2, 4, 3, 8, 3]