【问题标题】:What is the syntax to insert one list into another list in python?在python中将一个列表插入另一个列表的语法是什么?
【发布时间】:2011-04-14 11:12:09
【问题描述】:

给定两个列表:

x = [1,2,3]
y = [4,5,6]

语法是什么:

  1. x 插入y,这样y 现在看起来像[1, 2, 3, [4, 5, 6]]
  2. x 的所有项目插入y,使y 现在看起来像[1, 2, 3, 4, 5, 6]

【问题讨论】:

标签: python list append extend


【解决方案1】:

如果我们只做x.append(y),y 会被引用到 x 中,这样对 y 所做的任何更改也会影响附加的 x。所以如果我们只需要插入元素,我们应该这样做:

x = [1,2,3] y = [4,5,6] x.append(y[:])

【讨论】:

    【解决方案2】:

    你也可以这样做......

    x += y
    

    【讨论】:

    • 这应该是对已接受答案的评论,因为提到 x + yx += y 只是同一件事,但到位。
    • 我没有这样做的声誉,但如果其他人可以!
    【解决方案3】:

    如果你想将一个列表(list2)中的元素添加到另一个列表(list)的末尾,那么你可以使用列表扩展方法

    list = [1, 2, 3]
    list2 = [4, 5, 6]
    list.extend(list2)
    print list
    [1, 2, 3, 4, 5, 6]
    

    或者如果你想连接两个列表,那么你可以使用 + 号

    list3 = list + list2
    print list3
    [1, 2, 3, 4, 5, 6]
    

    【讨论】:

      【解决方案4】:

      这个问题并没有明确你想要达到的目标。

      List 有 append 方法,它将其参数附加到列表中:

      >>> list_one = [1,2,3]
      >>> list_two = [4,5,6]
      >>> list_one.append(list_two)
      >>> list_one
      [1, 2, 3, [4, 5, 6]]
      

      还有extend 方法,它从作为参数传递的列表中附加items

      >>> list_one = [1,2,3]
      >>> list_two = [4,5,6]
      >>> list_one.extend(list_two)
      >>> list_one
      [1, 2, 3, 4, 5, 6]
      

      当然,还有insert 方法,其作用类似于append,但允许您指定插入点:

      >>> list_one.insert(2, list_two)
      >>> list_one
      [1, 2, [4, 5, 6], 3, 4, 5, 6]
      

      要在特定插入点扩展列表,您可以使用列表切片(感谢@florisla):

      >>> l = [1, 2, 3, 4, 5]
      >>> l[2:2] = ['a', 'b', 'c']
      >>> l
      [1, 2, 'a', 'b', 'c', 3, 4, 5]
      

      列表切片非常灵活,因为它允许将列表中的一系列条目替换为另一个列表中的一系列条目:

      >>> l = [1, 2, 3, 4, 5]
      >>> l[2:4] = ['a', 'b', 'c'][1:3]
      >>> l
      [1, 2, 'b', 'c', 5]
      

      【讨论】:

      • 如果要“扩展”到特定的插入点,可以使用列表切片语法(见stackoverflow.com/a/7376026/1075152
      • @florisla 的评论应该是公认的答案。这是将一个列表插入到另一个列表中任意位置(不仅仅是在末尾)的唯一方法。
      • @weaver 虽然这是那个(在特定索引处扩展)的唯一解决方案,但这不是最初的问题。
      • @florisla 那是迂腐。
      【解决方案5】:

      你的意思是append

      >>> x = [1,2,3]
      >>> y = [4,5,6]
      >>> x.append(y)
      >>> x
      [1, 2, 3, [4, 5, 6]]
      

      还是合并?

      >>> x = [1,2,3]
      >>> y = [4,5,6]
      >>> x + y
      [1, 2, 3, 4, 5, 6]
      >>> x.extend(y)
      >>> x
      [1, 2, 3, 4, 5, 6] 
      

      【讨论】:

      • 这是到位还是产生了一个新实例?
      • x.extend(y) 已就位,x+y 正在返回新列表。而这里没有提到的x += y与extend类似。
      【解决方案6】:
      foo = [1, 2, 3]
      bar = [4, 5, 6]
      
      foo.append(bar) --> [1, 2, 3, [4, 5, 6]]
      foo.extend(bar) --> [1, 2, 3, 4, 5, 6]
      

      http://docs.python.org/tutorial/datastructures.html

      【讨论】:

      • 如何在 2 之后插入条并使其保持平整? [1,2,4,5,6,3]
      猜你喜欢
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多