此刻,我正在为一个问题而苦苦挣扎,想知道是否有人可以指出并告诉我我要去哪里错了。我仅需要在insert_position指定的指定位置使用append方法将字符串插入列表中。这是我的代码:
str1_list = ['one', 'three', 'four']
def insert_value(my_list, value, insert_position):
new_list = []
for i in range(len(my_list)):
if i < insert_position:
new_list.append(my_list[i])
elif i == insert_position:
new_list.append(my_list[i])
else:
new_list.append(my_list[i-1])
return new_list
print(str1_list, 'two', 1)
输出应为:
[“一个”,“两个”,“三个”,“四个”]
我知道value参数需要在某个地方,但无法确定在哪里。任何帮助将不胜感激。
谢谢
答案 0 :(得分:2)
您有一些错误(未使用传递给函数的value
,未校准函数,不必要的情况)。将您的代码与此进行比较:
str1_list = ['one', 'three', 'four']
def insert_value(my_list, value, insert_position):
new_list = []
for i in range(len(my_list)):
if i == insert_position:
new_list.append(value)
new_list.append(my_list[i])
return new_list
print(insert_value(str1_list, 'two', 1))
输出:
['one', 'two', 'three', 'four']
答案 1 :(得分:2)
您可以仅使用slice
添加新值,
>>> def insert_value(l, value, pos):
... l[pos:pos] = [value]
... return l # return is not required, since you want to modify the list ?
...
>>> l = ['one', 'three', 'four']
>>> insert_value(l, 'two', 1)
['one', 'two', 'three', 'four']
>>> l
['one', 'two', 'three', 'four']