1.在python中如何将两个list合并成一个list,不用for语句
除了直接相加(生成新的list),还有两种方法(修改其中一个list):
1. 用list的extend方法,L1.extend(L2),该方法将参数L2的全部元素添加到L1的尾部,例如:
>>> 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和上面的方法等价,例如:
>>> 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]
但切片方法用起来更灵活,可以插入到头部,或其他任意部位,例如:
加到开头:
>>> L1 = [1, 2, 3, 4, 5]
>>> L2 = [20, 30, 40]
>>> L1[0:0] = L2
>>> L1
[20, 30, 40, 1, 2, 3, 4, 5]3. 加到中间:
>>> 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文档镜像地址)#mutable-sequence-types
2.如何用Python比较两个列表,并进行合并
list1=[('a',1),('b',5),('c',3)]
list2=[('a',2),('b',2)]
hash = {}
for i,k in list1+list2:
if i not in hash:
hash[i] = k
elif k >= hash[i]:
hash[i] = k
list3 = hash.items()
print(list3)
这样吗 随便写的
转载请注明出处代码入门网 » pythonfor两个list