使用Python永久替换列表中的值

时间:2012-11-14 15:42:50

标签: python

list1 = [1,2,3,4,5,6,7,8,9]
def replace():

    input_list = input("Enter three numbers separated by commas: ")
    list2 = input_list.split(',')
    list2 = [int(x.strip())for x in list2]

    del list1[-3:]
    list1.insert(0,list2)

    print(list1)

输入12,13,14 这给出了结果[[12,13,14],1,2,3,4,5,6] 首先,我希望有一个“平面”列表作为结果,似乎无法正确[12,13,14,1,2,3,4,5,6]。我可以通过从list2 = [int(x.strip())for ...]语句中删除方括号,得到作为列表一部分输入的最后一个值,给出[14,1,2,3,4,5] ,6]。 我的第二个愿望是我可以永久地更改初始列表,即[12,13,14,1,2,3,5,6]成为首先调用的list1。我是否需要将其保存为csv文件并写入?我对此非常陌生,所以如果这是一个非常简单或愚蠢的问题,请原谅我。

1 个答案:

答案 0 :(得分:1)

我相信这就是你想要的:

In [11]: list1 = [1, 2, 3, 4, 5, 6]

In [12]: list2 = [12, 13, 14]

In [13]: list1[0:0] = list2

In [14]: list1
Out[14]: [12, 13, 14, 1, 2, 3, 4, 5, 6]

切片操作就地更改list1,因此变量不仅仅指向新列表。我认为那是“永久”的意思吗?