介绍
这篇文章给大家分享的是有关Python列表中去除重复数据的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
<强>直观方法强>
最简单的思路就是:
ids =, (1、2、3、3、4, 2, 3, 4, 5, 6, 1] 时间=news_ids [] for id id:拷贝 ,,,if id not 拷贝news_ids: ,,,,,,,news_ids.append (id) print news_ids
<强>使用集方法强>
ids =, (1、4、3、3、4、2, 3, 4, 5, 6, 1] ids =,列表(设置(ids))
这样的结果是没有保持原来的顺序。
<强>按照索引再次排序强>
最后通过这种方式解决:
ids =, (1、4、3、3、4、2, 3, 4, 5, 6, 1] 时间=news_ids 列表(设置(ids)) news_ids.sort(关键=ids.index)
<强>使出现用itertools。grouby方法强>
如果不考虑列表顺序的话可用这个:
ids =, (1、4、3、3、4、2, 3, 4, 5, 6, 1] ids.sort () 时间=it itertools.groupby (ids) , for k, g 拷贝: ,,,print k
关于itertools.groupby的原理可以看这里:http://docs.python.org/2/library/itertools.html itertools.groupby
<强>使用减少方法强>
拷贝[5]:,ids =, (1、4、3、3、4、2, 3, 4, 5, 6, 1] [6]:拷贝,func =, lambda x, y: x if y 拷贝x else x +, [y] [7]:,减少拷贝(func, [[],], +, ids) [7]:,(1,4,,3,,2,,5日,6]
上面是我在ipython中运行的代码,其中的λx, y:如果y在x x + [y]等其他价于λx, y:在x和y x orx + [y] .
思路其实就是先把id变为[[]、1、4、3、……),然后在利用减少的特性。
减少解释参看这里:http://docs.python.org/2/library/functions.html减少
感谢各位的阅读!关于Python列表中去除重复数据的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!