qhnw.net
当前位置:首页 >> python合并两个列表 >>

python合并两个列表

如果是大文件的话不适合将数据预先读入内存形成dict进行后期处理 但有两个方法: 1. 用 key-value数据库如bsddb模拟内存中的dict2. 对两个文件先用系统工具软件进行排序(如linux下的sort),然后再同时打开两个文件 在两个文件中顺序处理根据key值大小的不一移动不同的指针;然后进行合并逻辑.

#!/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 xprint reduce(merge, (dic1,dic2,dic3))复杂度,O(n) , 对于列表可以先转换成字典!!

没办法,word有那功能,excel没拆分功能 ,只能多加一整列后逐个与后横列的合并在一起,再调整到原来的形式.只有这个笨办法.

给个代码示例吧:a=[1,2,3]b=[4,5,6]c=a[:]c=c+b #此时列表c的内容是a与b合并后的内容如果是原地合并,即把a与b的内容合并到a,则代码如下:a=[1,2,3]b=[4,5,6]a.extend(b) #此时列表a的内容是a与b合并后的内容

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] = klist3 = hash.items()print(list3)这样吗 随便写的

你好!假设原来的两个list是L1,L2.1,合并:L = L1+L22,排序sorted(L) 默认从小到大排列,如果要从大到小排列就是sorted(L,reverse=True)合起来就是L=sorted(L1+L2, reverse=True)仅代表个人观点,不喜勿喷,谢谢.

同问

list_a = [1,3,5,7,9] list_b = [0,2,4,6,8]# list_result_sort = [] # 排列没懂你想要怎么做?合并之后排序吗?list_result_combine = zip(list_a, list_b) list_result_merge = list_a.extend(list_b)""" list_result_combine(1, 0)(3, 2)(5, 4)(7, 6)(9, 8)"""

你所定义的list node class和python自带的list type是不同的东西,不能通用,必须先转换其他小错我直接帮你改掉了下面是改好可以运行的代码:class ListNode(object): def __init__(self,val): self.val = val self.next = None def __repr__(self): return

>>> L1 = [1, 2, 3, 4, 5]>>> L2 = [20, 30, 40]>>> L1.extend(L2)>>> L1[1, 2, 3, 4, 5, 20, 30, 40]

网站首页 | 网站地图
All rights reserved Powered by www.qhnw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com