学习目标:

字典dict排序:指定按照key排序或values排序。
对字典或者list去除重复元素。


学习内容:

提示:准备

dicta ={'a':1,'b':2,'d':7,'c':23,'m':21,'f':4}

1、字典dict按key排序,升序或降序
按照字典的key排序:

dicta_sorted = sorted(dicta.items(),key=lambda x :x[0])
print(dicta_sorted)

输出结果:

[('a', 1), ('b', 2), ('c', 23), ('d', 7), ('f', 4), ('m', 21)]

默认升序,如果要降序,则:

dicta_sorted = sorted(dicta.items(),key=lambda x :x[0],reverse=True)
print(dicta_sorted)

输出结果:

[('m', 21), ('f', 4), ('d', 7), ('c', 23), ('b', 2), ('a', 1)]

2、 字典dict按values排序,升序或降序
升序

dicta_sorted = sorted(dicta.items(),key=lambda x :x[1])
print(dicta_sorted)

结果:

[('a', 1), ('b', 2), ('f', 4), ('d', 7), ('m', 21), ('c', 23)]

降序:

dicta_sorted = sorted(dicta.items(),key=lambda x :x[1],reverse=True)
print(dicta_sorted)

结果:

[('c', 23), ('m', 21), ('d', 7), ('f', 4), ('b', 2), ('a', 1)]

3、 对字典dict或者list中去重,输出去重后的个数
不能用for循环一个个去遍历判断values是否重复,太消耗时间,充分利用dict查找数据和set去重的特性。

def find_unique_price_using_set(products):unique_price_set = set()for _, price in products:unique_price_set.add(price)return len(unique_price_set)        products = [(143121312, 100), (432314553, 30),(32421912367, 150),(937153201, 30)
]
print('number of unique price is: {}'.format(find_unique_price_using_set(products)))# 输出 number of unique price is: 3

或者

def find_unique_price_using_set_dict(products):dist_products=dict(products)set_price=set(dist_products.values())return len(set_price)
products = [(143121312, 100), (432314553, 30),(32421912367, 150),(937153201, 30)
]import time
# 计算集合_字典版本的时间
start_using_set = time.perf_counter()
find_unique_price_using_set_dict(products)
end_using_set = time.perf_counter()
print("time elapse using set_dict: {}".format(end_using_set - start_using_set))

两个方法差不多,运行时间都很短,去重效率很高。对一万个数据去重只用0.0123秒
4、 掌握循环语句


学习时间:

理论10分钟,时间30分钟


学习产出:

掌握:
1、字典dict排序,可指定按照key排序,也可以按照values排序。
2、集合set去重操作。

python字典排序及字典集合去重高阶教程相关推荐

  1. python字典排序sort_Python字典排序

    利用引出一个例子来理解 例如:比如使用Python字典排序,d={'a':1,'c':3,'b':2}按值升序排列,我们可以用sorted高阶函数或者用列表的.sort()方法.下面具体阐述两种排序方 ...

  2. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...

  3. python openpyxl读写xlsx_python高阶教程-python操作xlsx文件(openpyxl)

    本篇内容来自原创小册子<python高阶教程>,点击查看目录. 背景 在处理一些作业时,经常会碰到统计未交人数.分数等需求,虽然我们在数据库中有了对应的数据, 但是数据库只是面向开发者的, ...

  4. Python数据结构与算法(1.3)——Python基础之输入、输出与高阶赋值

    Python数据结构与算法(1.3)--Python基础之输入.输出与高阶赋值 0. 学习目标 1. 输入.输出与注释 1.1 获取用户输入 1.2 格式化输出 1.2.1 基本方法 1.2.2 fo ...

  5. hexo高阶教程:想让你的博客被更多的人在搜索引擎中搜到吗?

    本文首发在我的个人博客:http://cherryblog.site/,欢迎大家前去参观,顺便求fork,么么哒~ 上一次在掘金上发表的hexo高阶教程:hexo高阶教程next主题优化之加入网易云音 ...

  6. Python字典排序、字典列表排序、嵌套字典排序

    python字典是常用的数据结构,经常用到各种python字典的排序,记录一下不同字典排序的方法. 正常字典排序 正常的字典我们都知道,其排序如下: a={100:1,101:0,102:2}b=so ...

  7. python 对输入的单词进行字典排序_Python-对字典进行排序

    案例: 某班英语成绩以字典的形式存储为: {'lili':78, 'jin':50, 'liming': 30, ......} 依据成绩高低,进行学生成绩排名 如何对字典排序? 方法1: #!/us ...

  8. python学习-综合练习六(列表翻转、变量交换、复制列表、元素求和(lambda和递归)、字典排序、字典pop)

    文章目录 列表翻转 变量交换 复制列表 元素求和 字典排序 字典pop 说明:本篇博文的知识点大部分来自 Python3 实例 列表翻转 列表翻转就是把列表的值按顺序左移,逻辑还是挺简单的. 我之前的 ...

  9. python单词字典排序_python字典排序

    使用operator排序 按字典的值排序(默认为升序): import operator x = {1:2, 3:4, 4:3, 2:1, 0:0} sorted_x = sorted(x.items ...

最新文章

  1. 第四章 数据库和SQL 4-3 数据的更新(UPDATE语句的使用方法)
  2. Paper:2020年3月30日何恺明团队最新算法RegNet—来自Facebook AI研究院《Designing Network Design Spaces》的翻译与解读
  3. 以持续集成工具实现DevOps之禅
  4. C++ deque 底层原理及 queue、stack 容器的使用详解
  5. Redis基础-下载安装配置
  6. 数据揭秘中国女性的薪水普遍比男性低,说好的“同工同酬”呢?
  7. 语音识别中的CTC算法的基本原理解释
  8. python为什么是蛇的天敌_蛇的天敌有哪些?
  9. 每日思考第 61 期:职场PUA与情场PUA
  10. 上海万国驾校 科目三考试
  11. RS485,uart串口加瑞芬68协议
  12. WEB漏洞之:海洋CMS代码执行(CNVD-2020-22721)
  13. stick to it
  14. 【毕业设计】基于单片机的智能衣柜系统设计 - 物联网 stm32 嵌入式
  15. 不看绝对血亏!docker镜像下载不下来
  16. 【7 查找】二叉排序树查找关键字。
  17. [附源码]计算机毕业设计基于springboot的4s店车辆管理系统
  18. 社交网络分析:网络中心性
  19. r245fa物性_2FA应该是强制性的吗?
  20. 达美航空入驻全新上海浦东国际机场卫星厅

热门文章

  1. 在哪开启oracle服务器,开启企业殿堂的钥匙 Oracle服务器的安装
  2. 谷歌扇区图层制作工具_很实用!轻松实现Mapinfo和GoogleEarth图层的数据转换
  3. mysql 有empty_blob()_【原创】操作Blob类型的方法
  4. 渲染器跑分_这一次会挤牙膏吗?9400F/10400跑分对比
  5. 时间序列分析 pdf_多变量时间序列的聚类分析与相似查询——多变量时间序列的相似查询分析...
  6. 【bug记录】android:Program type already present: android.support.v4.app.INotificationSideChannel
  7. 硬盘温度70度正常吗_读懂固态硬盘:NVMe SSD的SMART健康数据这样看
  8. QComboBox样式
  9. Android studio中git密码记住的问题
  10. KXMovie基于ffmpeg的播放器