python列表的去重

來源:互聯網
上載者:User

標籤:相同   好的   設定   itertools   new   end   log   app   import   

#需求:#對列表去重:lis = [2,3,5,3,2,4,8,5,6,7,5](目前為三種方法,持續更新。。。。方法思路來源於https://www.cnblogs.com/nyist-xsk/p/7473236.html,感謝瞭解去重之後解決了一個問題)

lis = [2,3,5,3,2,4,8,5,6,7,5]#方法一:使用set() 集合,這種方法利用set() 集合的去重。出來的結果是進行升序排好的lis1 = list(set(lis))print(lis1) #方法二:使用for迴圈和not in判斷 該方法擷取到的列表跟之前的順序是相同的lis2 = []for i in lis:    if i not in lis2:       lis2.append(i)print(lis2)#方法三:使用類itertools中groupby() 的方法 該方法需要先進行排序(根據排序的規則最後輸出的結果就是)import itertoolslis = [2,3,5,3,2,4,8,5,6,7,5]lis2 = []lis.sort() #不設定reverse=True 預設是升序,設定是降序,這一步是必須的lis1 = itertools.groupby(lis)for k,v in lis1:    lis2.append(k)print(lis2)#[2, 3, 4, 5, 6, 7, 8]升序

#其他方法之後更新

感謝https://www.cnblogs.com/nyist-xsk/p/7473236.html作者提供的思路解決了下面的問題。

#需求:對lis = [2,3,5,3,2,4,8,5,6,7,5]計算元素出現的次數。

lis = [2,3,5,3,2,4,8,5,6,7,5]#去重lis1 = list(set(lis))dic = {}for i in lis1:    dic[i] = lis.count(i) #計數print(dic)

#需求如下:給出一個購物車列表,對列表進行計數輸出結果

"""
goods = [{"name": "電腦", "price": 1999},
{"name": "羅技滑鼠", "price": 10},
{"name": "遊艇", "price": 20},
{"name": "美女", "price": 998},
{"name": "羅技滑鼠", "price": 20},
{"name":"電腦","price":1999},
{"name": "電腦", "price": 2999}]
#輸出結果:
new_goods = [{"name":"電腦","price":1999,"count":2},
{"name": "羅技滑鼠", "price": 10, "count": 1},
{"name": "羅技滑鼠", "price": 20, "count": 1},
{"name": "美女", "price": 998,"count":1},
{"name": "遊艇", "price": 20,"count":1},
{"name": "電腦", "price": 2999,"count":1}]
"""
goods = [{"name": "電腦", "price": 1999},         {"name": "羅技滑鼠", "price": 10},         {"name": "遊艇", "price": 20},         {"name": "美女", "price": 998},         {"name": "羅技滑鼠", "price": 20},         {"name":"電腦","price":1999},         {"name": "電腦", "price": 2999}]#先進行去重new_goods = []for good in goods:    if good not in new_goods:        new_goods.append(good)#進行計數for new_good in new_goods:    new_good["count"] = goods.count(new_good)print(new_goods)

 

python列表的去重

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.