我试图找出如何从列表中删除特定索引,但我不知道如何解决我的问题。有人可以帮我解决这个问题吗?
首先,我必须使用输入从用户那里获得一些数字。
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)
答案 0 :(得分:2)
您可以使用关键字 del 将其删除。这是一个例子。
my_list = [1, 2, 3, 4, 5]
del my_list[0] # 0 is the index
这将删除my_list的第一个索引。因此,结果列表将是 [2,3,4,5]
Here是教程中的部分。
答案 1 :(得分:1)
请再次检讨您的问题。请更正您的问题,因为目前还不清楚您要实现的目标。这是我认为你希望实现的两个条件。
list[0] == 1
然后删除该元素。list[i+1]-1 == list[i]
,请删除list[i+1]
首先,在代码的第6行中有一个错误,它应该是if ==
而不是if =
。以下代码将达到上述条件。
numbers = int(input("Enter the limit for the list : "))
list_num = []
for i in range(0,numbers):
list_num.append(int(input("list["+str(i)+"]: ")))
if list_num[0] == 1:
list_num.remove(list_num[0])
try:
for i in range(0,len(list_num)):
if list_num[i] == list_num[i+1]-1:
list_num.remove(list_num[i+1])
except:
print list_num
输入:[1,2,7,8,13,20,21]
输出:[2,7,13,20]
答案 2 :(得分:-1)
您的代码存在一些问题,包括语法,缩进和逻辑。我已将您的代码格式化为工作方式。祝你好运。
numbers = input("input any numbers:")
list_num = list(numbers)
ret = []
for i,v in enumerate(list_num):
if i == 0 and v == 1:
continue
if v == list_num[-1]:
ret.append(v)
break
if v != list_num[i+1]:
print v, list_num[i+1]
ret.append(v)
print(ret)