在python中如何将两个list合并成一个list,不用for语句

输入:
a=[1,2,3]
b=[4,5,6]
输出:
c=[1,2,3,4,5,6]
注意输出不是[[1,2,3],[4,5,6]]
万事屋的銀時  |  浏览 42283 次
推荐于2016-07-24 12:45:01 最佳答案

除了直接相加(生成新的list),还有两种方法(修改其中一个list):

  1. 用list的extend方法,L1.extend(L2),该方法将参数L2的全部元素添加到L1的尾部,例如:

    1
    2
    3
    4
    5
    >>> L1  =  [ 1 2 3 4 5 ]
    >>> L2  =  [ 20 30 40 ]
    >>> L1.extend(L2)
    >>> L1
    [ 1 2 3 4 5 20 30 40 ]
  2. 用切片(slice)操作,L1[len(L1):len(L1)] = L2和上面的方法等价,例如:

    1
    2
    3
    4
    5
    6
    >>> L1  =  [ 1 2 3 4 5 ]
    >>> L2  =  [ 20 30 40 ]
    >>> L1[ len (L1): len (L1)]  =  L2
    >>> 
    >>> L1
    [ 1 2 3 4 5 20 30 40 ]


    但切片方法用起来更灵活,可以插入到头部,或其他任意部位,例如:

    加到开头:

    1
    2
    3
    4
    5
    >>> L1  =  [ 1 2 3 4 5 ]
    >>> L2  =  [ 20 30 40 ]
    >>> L1[ 0 : 0 =  L2
    >>> L1
    [ 20 30 40 1 2 3 4 5 ]
  3. 加到中间:

    1
    2
    3
    4
    5
    6
    >>> L1  =  [ 1 2 3 4 5 ]
    >>> L2  =  [ 20 30 40 ]
    >>> 
    >>> L1[ 1 : 1 =  L2
    >>> L1
    [ 1 20 30 40 2 3 4 5 ]


参考

1.《python libarary referece》5.6.4. Mutable Sequence Types:

(oschina文档镜像地址)http://tool.oschina.net/uploads/apidocs/python2.7.3/library/stdtypes.html#mutable-sequence-types

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值