【问题标题】:How to insert into python nested list如何插入python嵌套列表
【发布时间】:2015-06-15 03:53:45
【问题描述】:

我想将一个项目插入到列表中的列表中。我想知道是否有人可以告诉我。

list5 = [[], [(1,2,3,4), 2, 5]]
print("1. list5", list5)
list5.insert(0, (2,5,6,8))
print("2. list5", list5)

Output:
1. list5 [[], [(1, 2, 3, 4), 2, 5]]
2. list5 [(2, 5, 6, 8), [], [(1, 2, 3, 4), 2, 5]]

我想要:

2. list5 [[(2, 5, 6, 8)], [(1, 2, 3, 4), 2, 5]]

很遗憾,字典不起作用。

【问题讨论】:

    标签: python list list-comprehension


    【解决方案1】:

    问题是您试图将list5 作为列表的第一个元素插入,这是不正确的。您必须访问列表的第一个元素并将其插入该列表。这可以使用以下代码完成

    >>> list5 = [[], [(1,2,3,4), 2, 5]]
    >>> print("1. list5", list5)
    1. list5 [[], [(1, 2, 3, 4), 2, 5]]
    >>> list5[0].insert(0, (2,5,6,8))
    >>> print("2. list5", list5)
    2. list5 [[(2, 5, 6, 8)], [(1, 2, 3, 4), 2, 5]]
    

    【讨论】:

    • 太棒了。非常感谢。
    • 很高兴对你有所帮助,两次:P
    • 是的,最后一个是 box = Box()。
    • 很高兴看到你还记得我 :)
    【解决方案2】:

    def add_new_item(l1):

    l1[2][2].append(700)
    print(l1)
    

    l1 = [10, 20, [300, 400, [5000, 6000], 500], 30, 40]

    add_new_item(l1)

    【讨论】:

      【解决方案3】:

      这里的问题是insert 在它所应用的列表中创建了一个 项。所以

      >>> list5 = [[], [(1,2,3,4), 2, 5]]
      

      创建一个包含两个元素的列表,其中第一个恰好是一个包含零个元素的列表:

      >>> list5[0]
      ## []
      

      如果您随后调用 list5.insert(0, foo),将会发生的情况是 foo 被推入列表的位置 0,而其他所有内容都被推到一起(即列表中每个索引为 0 或更大的元素让他们的指数增加 1)。

      你真正想做的是将一个元素插入到list5的位置0的空列表中。因此,您需要访问该列表,然后调用添加元素的方法。要么

      >>> list5[0].append( (2,5,6,8) )
      

      >>> list5[0].insert(0, (2,5,6,8) )
      

      会成功的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-06
        • 1970-01-01
        • 2017-09-15
        相关资源
        最近更新 更多