python – 如何在列表中找到重复项并使用它们创建另一个列表?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何在列表中找到重复项并使用它们创建另一个列表?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1070字,纯文字阅读大概需要2分钟。
内容图文
![python – 如何在列表中找到重复项并使用它们创建另一个列表?](/upload/InfoBanner/zyjiaocheng/717/d0fcca7c73f0476bb3091165d941a688.jpg)
如何在Python列表中找到重复项并创建另一个重复项列表?该列表仅包含整数.
解决方法:
要删除重复项,请使用set(a).要打印重复项,例如:
a = [1,2,3,2,1,5,6,5,5,5]
import collections
print [item for item, count in collections.Counter(a).items() if count > 1]
## [1, 2, 5]
请注意,Counter不是特别有效(timings)并且在这里可能有点过分.套装会表现得更好.此代码计算源顺序中的唯一元素列表:
seen = set()
uniq = []
for x in a:
if x not in seen:
uniq.append(x)
seen.add(x)
或者,更简洁地说:
seen = set()
uniq = [x for x in a if x not in seen and not seen.add(x)]
我不推荐后一种风格,因为不明显的是没有看到.add(x)正在做什么(set add()方法总是返回None,因此需要不).
要计算没有库的重复元素列表:
seen = {}
dupes = []
for x in a:
if x not in seen:
seen[x] = 1
else:
if seen[x] == 1:
dupes.append(x)
seen[x] += 1
如果列表元素不可清除,则不能使用集合/ dicts并且必须求助于二??次时间解决方案(将每个解析比较每个).例如:
a = [[1], [2], [3], [1], [5], [3]]
no_dupes = [x for n, x in enumerate(a) if x not in a[:n]]
print no_dupes # [[1], [2], [3], [5]]
dupes = [x for n, x in enumerate(a) if x in a[:n]]
print dupes # [[1], [3]]
内容总结
以上是互联网集市为您收集整理的python – 如何在列表中找到重复项并使用它们创建另一个列表?全部内容,希望文章能够帮你解决python – 如何在列表中找到重复项并使用它们创建另一个列表?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。