[英]How can I remove specific index from list in python
我试图弄清楚如何从列表中删除特定的索引,但是我不知道如何解决我的问题。 有人可以帮我解决这个问题吗?
首先,我必须使用输入从用户那里获得一些数字。
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)
您可以使用关键字del删除它。 这是例子。
my_list = [1, 2, 3, 4, 5]
del my_list[0] # 0 is the index
这将删除my_list的第一个索引。 因此,结果列表将为[2、3、4、5]
这是教程中的部分。
请再次查看您的问题。 请更正您的问题,因为不清楚您要达到的目标。 这是我想您要达到的两个条件。
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]
您的代码有几个问题,包括语法,缩进和逻辑。 我已经将您的代码格式化为可工作的方式。 祝好运。
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.