如何在不使用insert()方法的情况下在列表中的特定索引位置插入值?

时间:2015-05-27 03:06:20

标签: python list

我是Python的新手,想要找到另一种方法来重新创建与列表一起使用的插入方法功能。

>>> ulist = [1,2,3,4,5]
>>> ulist.insert(2,9)
>>> ulist
[1, 2, 9, 3, 4, 5]
>>> 

在这里,我想从用户那里获取一个输入列表,然后向他/她询问他想要放入新值的地方的编号。 然后在该位置添加该值,而不会干扰现有的列表元素。

    >>> ulist = [1,2,3,4,5]
    >>> num = int(input("Enter the number: "))
    Enter the number: 2
    >>> index1 = num - 1
    >>> val = int(input("enter the value to be put at index location: "))
    enter the value to be put at index location: 9
    >>> ulist[index1] = val
    >>> print(ulist)
    [1, 9, 3, 4, 5]
    >>> 

2 个答案:

答案 0 :(得分:4)

您可以使用切片表示法。这也有保留原始列表的优点:

>>> ulist = [1,2,3,4,5]
>>> ulist2 = ulist[:2] + [9] + ulist[2:]
>>> ulist2
[1, 2, 9, 3, 4, 5]
>>> ulist
[1, 2, 3, 4, 5]

答案 1 :(得分:2)

您可以将包含一个元素的列表分配给长度为零的切片:

>>> ulist = [1, 2, 3, 4, 5]
>>> ulist[2:2] = [9]
>>> ulist
[1, 2, 9, 3, 4, 5]

说明

您可以将新列表分配给现有列表的切片。

盯着你的清单:

>>> ulist = [1, 2, 3, 4, 5]

您可以对其进行切片:

>>> ulist[2:4]
[3, 4]

您可以为此切片指定一个具有任意大小的新列表:

>>> ulist[2:4] = [10, 20, 30]
[1, 2, 10, 20, 30, 5]

这会选择一个空切片:

>>> ulist[2:2]
[]

分配给它基本上插入索引2:

>>> ulist[2:2] = [100, 200, 300]
>>> ulist
[1, 2, 100, 200, 300, 10, 20, 30, 5]

使用右侧只有一个元素的列表具有相同的列表 效果为ulist.insert()