python两个列表进行合并

/usr/bin/env python-*- coding: utf-8 -*-def merge(x, y):for k,v in y.items():try:a_v = []x_pre = x[k]if isinstance(x_pre,list):a_v.extend(x_pre)else:a_v.append(x_pre)a_v.append(v)x[k] = list(set(a_v))except KeyError:x[k] = vreturn xprint ...
python两个列表进行合并
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def merge(x, y):
for k,v in y.items():
try:
a_v = []
x_pre = x[k]
if isinstance(x_pre,list):
a_v.extend(x_pre)
else:
a_v.append(x_pre)
a_v.append(v)
x[k] = list(set(a_v))
except KeyError:
x[k] = v
return x

print reduce(merge, (dic1,dic2,dic3))
复杂度,O(n) , 对于列表可以先转换成字典!!2013-12-24
#!/usr/bin/env python# coding: utf-8## filename: lpart.py# author: Tim Wang# date: Dec., 2013A=[['A','A1'],['B','A2'],['C','A3'],['D','A4']]B=[['A','B1'],['B','B2'],['C','B3'],['D','B4']]C=[['A','C1'],['B','C2'],['C','C3'],['D','C4']]D=[['A','D1'],['B','D2'],['C','D3'],['D','D4']]R = zip(zip(*A)[1], zip(*B)[1], zip(*C)[1], zip(*D)[1])print Rdic1={'A':1,'B':2,'C':3}dic2={'A':11,'B':22,'C':33}dic3={'A':111,'B':222,'C':333}keys = dic1.keys()values = zip( zip(*dic1.items())[1], zip(*dic2.items())[1], zip(*dic3.items())[1])dic_all=dict(zip(keys, values))print dic_allA=[['A','A1'],['B','A2'],['C','A3'],['D','A4']]B=[['B','B2'],['A','B1'],['D','B4'],['C','B3']]C=[['A','C1'],['B','C2'],['D','C4']]D=[['B','D2'],['C','D3'],['D','D4']]dicts = map(dict, (A,B,C,D))totalkeys = reduce(lambda x,y: x|set(y.keys()), dicts, set())dict_all = dict([(k, filter(None, map(lambda x: x.get(k), dicts))) for k in totalkeys])print dict_all>python -u "lpart.py"[('A1', 'B1', 'C1', 'D1'), ('A2', 'B2', 'C2', 'D2'), ('A3', 'B3', 'C3', 'D3'), ('A4', 'B4', 'C4', 'D4')]{'A': (1, 11, 111), 'C': (3, 33, 333), 'B': (2, 22, 222)}{'A': ['A1', 'B1', 'C1'], 'C': ['A3', 'B3', 'D3'], 'B': ['A2', 'B2', 'C2', 'D2'], 'D': ['A4', 'B4', 'C4', 'D4']}>Exit code: 0 Time: 0.048
2013-12-22
A=[['A','A1'],['B','A2'],['C','A3'],['D','A4']]B=[['A','B1'],['B','B2'],['C','B3'],['D','B4']]C=[['A','C1'],['B','C2'],['C','C3'],['D','C4']]D=[['A','D1'],['B','D2'],['C','D3'],['D','D4']]arr=[A,B,C,D]dic_all={x[0][0]:[y[1] for y in x] for x in zip(*arr)}list_all=[[x[0][0]]+[y[1]for y in x] for x in zip(*arr)]if __name__=='__main__': print(list_all) print(dic_all) 结果:
[['A', 'A1', 'B1', 'C1', 'D1'], ['B', 'A2', 'B2', 'C2', 'D2'], ['C', 'A3', 'B3', 'C3', 'D3'], ['D', 'A4', 'B4', 'C4', 'D4']]{'D': ['A4', 'B4', 'C4', 'D4'], 'A': ['A1', 'B1', 'C1', 'D1'], 'C': ['A3', 'B3', 'C3', 'D3'], 'B': ['A2', 'B2', 'C2', 'D2']}2013-12-22
mengvlog 阅读 424 次 更新于 2025-09-09 22:47:29 我来答关注问题0
  • 假设有两个列表list1和list2,可以使用以下代码将它们合并为一个新列表:python new_list = list1 + list2 解释如下:列表相加操作 Python中的列表是可变序列类型,支持序列拼接操作。通过将两个列表放在加号两侧,可以直接将它们相加,从而得到一个新的列表。这是Python语言内置的功能,非常直观且易于使...

  • 在Python中,可以通过以下两种主要方法将嵌套的列表合并成一个列表:1. 使用递归和列表推导式: 定义一个递归函数,该函数会检查传入的元素是否为列表。 如果是列表,则递归调用自身以展平子列表。 如果不是列表,则直接将元素添加到结果列表中。 通过列表推导式,可以简洁地将多级列表转化为单一列表。2....

  • 实际上,使用简单的列表加法 `a+b` 或者 `a.extend(b)` 方法来合并两个列表更为直观和简洁。例如,将列表 `a` 和 `b` 合并,只需执行 `a = a + b` 或者 `a.extend(b)`,然后使用 `print(a)` 输出即可。那么,为何会有人选择使用两个for循环来合并列表呢?这种做法通常在特定场景下...

  •  翡希信息咨询 Python中合并列表(list)的六种方法

    在Python中,合并列表的六种方法如下:使用”+“运算符:说明:通过加法操作直接合并两个列表,适用于列表元素不多的情况,但效率不高。使用extend方法:说明:将一个列表的内容追加到另一个列表的末尾,会改变原列表。使用zip函数:说明:交叉合并两个列表,将对应位置的元素打包成一个元组,...

  •  翡希信息咨询 Python3 列表list合并的4种方法

    Python3 中列表合并的4种主要方法如下:使用”+“运算符:描述:使用”+“运算符将两个列表连接起来,形成新的列表。示例:list1 + list2 会生成一个新的列表,包含list1和list2的所有元素。使用extend方法:描述:将一个列表的所有元素添加到另一个列表的末尾,不会创建新的...

檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部