我一直在尝试为作业工作,我是新编码的人。部分原因是通过输入所需项目和没有内置函数的索引,使用户插入项目列表。目前,我已经获得了替换该索引中的项目的代码,但我无法让它去做它应该做的事情。
对象是项目,列表在主函数中。
def add(list, obj, index):
nlist = []
print("Your list ", list)
item = input("Insert item: ")
index = int(input("Index: "))
i = 0
for e in list:
if i < index:
nlist.append(e)
i += 1
elif i == index:
nlist.append(obj)
i += 1
elif i > index:
nlist.append(e)
i += 1
print("Your new list ", nlist)
答案 0 :(得分:10)
你想在第二辆火车后加一辆火车。因此,您要在索引1
和2
之间拆分列车,然后将其附加。前面部分是从0到1的所有部分,第二部分是从2到结尾的所有内容。
幸运的是,python有一个非常好的切片语法:x[i:j]
表示从i
(包括)切换到j
(不包括)。 x[:j]
表示从前面切换到j
,x[i:]
表示从i
切片直到结束。
所以我们可以做到
def add(lst, obj, index): return lst[:index] + [obj] + lst[index:]
答案 1 :(得分:1)
a = [1,2,3,4,5]
idx = 3
value=[7]
def insert_gen(a,idx,value):
b=a[:idx] + value + a[idx:]
return b
final = insert_gen(a,idx,value)
print(final)
答案 2 :(得分:0)
用包含对象的列表替换空切片:
lst[index:index] = [obj]
演示:
>>> for index in range(4):
lst = [0, 1, 2]
lst[index:index] = [9]
print(lst)
[9, 0, 1, 2]
[0, 9, 1, 2]
[0, 1, 9, 2]
[0, 1, 2, 9]