【发布时间】:2016-06-07 07:16:56
【问题描述】:
我试图弄清楚如何从列表中删除特定索引,但我不知道如何解决我的问题。有人可以帮我解决这个问题吗?
首先,我必须使用输入从用户那里获取一些数字。
numbers = int(input("input any numbers: "))
list_num = list(numbers)
其次,如果 list_num[0] == 1,则删除该元素。
第三,如果list_num[i+1] == list_num[i],删除list_num[i+1]。
所以,如果初始列表是这样的:list_num = [1,2,7,8,13,20,21],
最终名单将是list_num = [2,7,13,20]
这是要修复的程序:
numbers = int(input("input any numbers:"))
list_num = list(numbers)
if list_num[0] ==1:
list_num.remove(num[0])
for i in range(1,len(list_num)-1, 1):
if list_num[i] = list_num[i+1] -1:
list_num.remove(num[i+1])
print(list_num)
【问题讨论】:
-
请注意,从列表中删除一个项目,同时迭代它会导致问题。最好使用列表推导式或其他方法来使用旧列表中的元素构建新列表。请参阅this 问题。
-
只是为了好玩:
print([item[0] for item in (list(x) for _, x in itertools.groupby(list_num, lambda v, c=itertools.count(): v - next(c)))]):-) -
感谢所有 cmets,我编辑了我的问题以更有条理。 :)