Python 高效编程技巧分享


Posted in Python onSeptember 10, 2020

一、根据条件在序列中筛选数据

  • 假设有一个数字列表 data, 过滤列表中的负数
data = [1, 2, 3, 4, -5]
 
# 使用列表推导式
result = [i for i in data if i >= 0]
 
# 使用 fliter 过滤函数
result = filter(lambda x: x >= 0, data)
  • 学生的数学分数以字典形式存储,筛选其中分数大于 80 分的同学
from random import randint
 
d = {x: randint(50, 100) for x in range(1, 21)}
r = {k: v for k, v in d.items() if v > 80}

二、对字典的键值对进行翻转

  • 使用 zip() 函数

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

from random import randint, sample
 
s1 = {x: randint(1, 4) for x in sample("abfcdrg", randint(1, 5))}
d = {k: v for k, v in zip(s1.values(), s1.keys())}

三、统计序列中元素出现的频度

  • 某随机序列中,找到出现次数最高的3个元素,它们出现的次数是多少

方法1:

# 可以使用字典来统计,以列表中的数据为键,以出现的次数为值
from random import randint
 
# 构造随机序列
data = [randint(0, 20) for _ in range(30)]
 
# 列表中出现数字出现的次数
d = dict.fromkeys(data, 0)
 
for v in d:
  d[v] += 1

方法2:

# 直接使用 collections 模块下面的 Counter 对象
from collections import Counter
from random import randint
 
data = [randint(0, 20) for _ in range(30)]
 
c2 = Counter(data)
 
# 查询元素出现次数
c2[14]
 
# 统计频度出现最高的3个数
c2.most_common(3)
  • 对某英文文章单词进行统计,找到出现次数最高的单词以及出现的次数
import re
from collections import Counter
 
# 统计某个文章中英文单词的词频
with open("test.txt", "r", encoding="utf-8") as f:
  d = f.read()
 
# 所有的单词列表
total = re.split("\W+", d)
result = Counter(total)
print(result.most_common(10))

四、根据字典中值的大小,对字典中的项进行排序

  • 比如班级中学生的数学成绩以字典的形式存储,请按数学成绩从高到底进行排序

方法1:

# 利用 zip 将字典转化为元组,再用 sorted 进行排序
from random import randint
 
data = {x: randint(60, 100) for x in "xyzfafs"}
sorted(data)
data = sorted(zip(data.values(), data.keys()))

方法2:

# 利用 sorted 函数的 key 参数
from random import randint
 
data = {x: randint(60, 100) for x in "xyzfafs"}
data.items()
sorted(data.items(), key=lambda x: x[1])

五、在多个字典中找到公共键

  • 实际场景:在足球联赛中,统计每轮比赛都有进球的球员

第一轮:{"C罗": 1, "苏亚雷斯":2, "托雷斯": 1..}

第二轮:{"内马尔": 1, "梅西":2, "姆巴佩": 3..}

第三轮:{"姆巴佩": 2, "C罗":2, "内马尔": 1..}

from random import randint, sample
from functools import reduce
 
# 模拟随机的进球球员和进球数
s1 = {x: randint(1, 4) for x in sample("abfcdrg", randint(1, 5))}
s2 = {x: randint(1, 4) for x in sample("abfcdrg", randint(1, 5))}
s3 = {x: randint(1, 4) for x in sample("abfcdrg", randint(1, 5))}
 
# 首先获取字典的 keys,然后取每轮比赛 key 的交集。由于比赛轮次数是不定的,所以使用 map 来批量操作
# map(dict.keys, [s1, s2, s3])
 
# 然后一直累积取其交集,使用 reduce 函数
reduce(lambda x, y: x & y, map(dict.keys, [s1, s2, s3]))

以上就是Python 高效编程技巧分享的详细内容,更多关于Python 高效编程技巧的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
决策树的python实现方法
Nov 18 Python
Python实现App自动签到领取积分功能
Sep 29 Python
pycharm修改界面主题颜色的方法
Jan 17 Python
Django restframework 源码分析之认证详解
Feb 22 Python
python中hasattr()、getattr()、setattr()函数的使用
Aug 16 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
浅谈Python程序的错误:变量未定义
Jun 02 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
python操作redis数据库的三种方法
Sep 10 #Python
Python计算矩阵的和积的实例详解
Sep 10 #Python
python如何运行js语句
Sep 09 #Python
python如何爬取动态网站
Sep 09 #Python
python如何停止递归
Sep 09 #Python
python能做哪些生活有趣的事情
Sep 09 #Python
Python 连接 MySQL 的几种方法
Sep 09 #Python
You might like
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
探讨如何把session存入数据库
2013/06/07 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
动态加载iframe
2006/06/16 Javascript
用js怎么把&字符换成"&amp:"
2006/10/19 Javascript
js 文件引入实现代码
2010/04/23 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
python实现手机通讯录搜索功能
2018/02/22 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
python中图像通道分离与合并实例
2020/01/17 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
如何理解委托
2012/01/06 面试题
木马的传播途径主要有哪些
2016/04/08 面试题
医学实习生自我鉴定
2013/12/12 职场文书
如何写好自荐信
2014/04/07 职场文书
清明节演讲稿
2014/05/27 职场文书
运动与健康自我评价
2015/03/09 职场文书
聚会通知怎么写
2015/04/23 职场文书
教导处教学工作总结
2015/08/12 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
创业计划书之家教中心
2019/09/25 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
Python办公自动化PPT批量转换操作
2021/09/15 Python