l = ['a','b','a','c','c']
输出应该是:
[['a','a'],['b','b'],['c','c']]
所以基本上将重复的值放在一个列表中,
我试过了:
l = ['a','c']it=iter(sorted(l))next(it)new_l=[]for i in sorted(l): new_l.append([]) if next(it,None)==i: new_l[-1].append(i) else: new_l.append([])
但是不起作用,如果它确实有效,它就不会有效率
解决方法 对列表排序然后使用itertools.groupby:>>> from itertools import groupby>>> l = ['a','c']>>> [List(g) for _,g in groupby(sorted(l))][['a','c']]
编辑:这可能不是最快的方法,排序是平均情况的O(n log n)时间复杂度,并非所有解决方案都需要(参见注释)
总结以上是内存溢出为你收集整理的如何找到重复值并合并它们? – Python全部内容,希望文章能够帮你解决如何找到重复值并合并它们? – Python所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)