仅使用append方法将字符串插入列表

时间:2019-11-11 10:26:09

标签: python append

此刻,我正在为一个问题而苦苦挣扎,想知道是否有人可以指出并告诉我我要去哪里错了。我仅需要在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参数需要在某个地方,但无法确定在哪里。任何帮助将不胜感激。

谢谢

2 个答案:

答案 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']