码迷,mamicode.com
首页 > 编程语言 > 详细

python列表的去重

时间:2018-08-12 17:26:35      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:相同   好的   设置   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 itertools
lis = [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列表的去重

标签:相同   好的   设置   itertools   new   end   log   app   import   

原文地址:https://www.cnblogs.com/yangshier/p/9463213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!