【发布时间】:2016-06-07 14:32:16
【问题描述】:
我正在尝试创建一个已定义的函数(没有列表/字符串方法): 到目前为止,我有在给定位置更新的代码,但我正在努力创建可以在列表位置插入变量并移动现有元素的代码。我希望输出是 ['a', 'b', 'c', 'd'] 而不是 ['a', 'b', 'c', 'e']。
请注意:这是为了学习,我确实想学习我希望被指出正确的方向,而不仅仅是提供答案。
def insert(list1, var, i):
counter = 0
for i in my_list:
if counter == i:
my_list[i] = var
counter += 1
return list1
list = ['a', 'b', 'd', 'e']
func = insert(list, 'c', 2)
我一夜之间一直在编写代码(很抱歉我在飞机上回复这么晚)
我想出了这段代码,我认为它可以工作,尽管它有点粗糙。任何人都可以就他们是否认为这是一个问题提供一些意见吗?
def insert(list1, var, i):
new_list = []
counter = -1
for index in (list1[:-1]):
counter += 1
new_list.append(index)
if counter == (i-1):
new_list.append(var)
return new_list
list2= ['a', 'b', 'c', 'd', 'e', 'f', 'h']
func = insert(list2, 'g', 6)
print(func)
【问题讨论】:
-
连
list.append都不能用吗?你会度过一段有趣的时光,因为我认为 list-comp 还没有被教过? (我想只有list.insert超出范围)? -
您需要复制该列表——但由于您只是想要一个指向教程材料的指针,我可以建议effbot.org/zone/python-list.htm
-
您确定不想将列表设为
['a', 'b', 'c', 'd', 'e']吗?或者你需要恒定的长度? -
它需要一致的长度。列表长度不能增加。 append 可以使用
-
该函数的目的是在给定位置插入,并将所有对象“向右移动1”但不增加列表大小。我对此的理解是,他们希望列表的末尾“掉线”。它声明将所有元素向下移动,但不增加列表的大小。
标签: python list function python-3.x