python算法與數據結構,python不變的數據結構是_Python cookbook(數據結構與算法)從序列中移除重復項且保持元素間順序不變的方法...

 2023-10-08 阅读 30 评论 0

摘要:本文實例講述了Python從序列中移除重復項且保持元素間順序不變的方法。分享給大家供大家參考,具體如下:python算法與數據結構。問題:從序列中移除重復的元素,但仍然保持剩下的元素順序不變解決方案:python 鏈表?1、如果序列中的值時可哈希

本文實例講述了Python從序列中移除重復項且保持元素間順序不變的方法。分享給大家供大家參考,具體如下:

python算法與數據結構。問題:從序列中移除重復的元素,但仍然保持剩下的元素順序不變

解決方案:

python 鏈表?1、如果序列中的值時可哈希(hashable)的,可以通過使用集合和生成器解決。

# example.py

#

# Remove duplicate entries from a sequence while keeping order

def dedupe(items):

seen = set()

for item in items:

if item not in seen:

yield item

seen.add(item)

if __name__ == '__main__':

a = [1,5,2,1,9,10]

print(a)

print(list(dedupe(a)))

運行結果:

[1,10]

[1,10]

2、如果序列時不可哈希的,想要去除重復項,需要對上述代碼稍作修改:

# example2.py

#

# Remove duplicate entries from a sequence while keeping order

def dedupe(items,key=None):

seen = set()

for item in items:

val = item if key is None else key(item)

if val not in seen:

yield item

seen.add(val)

if __name__ == '__main__':

a = [

{'x': 2,'y': 3},{'x': 1,'y': 4},{'x': 2,{'x': 10,'y': 15}

]

print(a)

print(list(dedupe(a,key=lambda a: (a['x'],a['y']))))

運行結果:

[{'x': 2,'y': 15}]

[{'x': 2,'y': 15}]

key參數的作用是指定一個函數用來將序列中的元素轉化為可哈希的類型,如此可以檢測重復項。

希望本文所述對大家Python程序設計有所幫助。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/128899.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息