python3实用编程技巧_6.python3实用编程技巧进阶(一)
1.1.如何在列表中根据条件筛选数据# 1.1.如何在列表中根据条件筛选数据
data = [-1, 2, 3, -4, 5]
#筛选出data列表中大于等于零的数据
#第一种方法,不推荐
res1 = []
for x in data:
if x >= 0:
res1.append(x)
print(res1)
#第二种用列表解析,推荐使用
res2 = [ x for x in data if x >= 0]
print(res2)
#第三种用filter函数
res3 = list(filter(lambda x : x>= 0,data))
print(res3)
1.2.如何在列表中根据条件筛选数据# 1.2.如何在列表中根据条件筛选数据
from random import randint
#创建学生字典,学号为1~20,分数为50~100随机
d = {'student%d'% i: randint(50,100) for i in range(1,21)}
print(d)
#过滤出分数为90的学生字典
#第一种方法
d1 = {k:v for k,v in d.items() if v >= 90}
print(d1)
#第二种方法
d2 = dict(filter(lambda item:item[1] >= 90, d.items()))
print(d2)
1.3.如何在集合中根据条件筛选数据# 1.3.如何在集合中根据条件筛选数据
from random import randint
s = {randint(0,20) for _ in range(20)}
print(s)
#筛选出能被3整除的数
s1 = {x for x in s if x % 3 == 0}
print(s1)
1.4.如何为元祖中的每个元素命名,提高程序可读性
如下元祖,通过函数判断年龄和性别,但是这样代码可读性很差,别人并不知道student[1],student[2]代表什么意思。如何解决呢def func(student):
if student[1] < 18 :
pass
if student[2] == 'male':
pass
student = ('derek',22,'male','111@qq.com')
func(student)
方案一:定义枚举类型#1.4..如何为元祖中的每个元素命名,提高程序可读性
def func(student):
if student[1] < 18 :
pass
if student[2] == 'male':
pass
s1 = ('derek',22,'male','111@qq.com')
#第一种:使用枚举
from enum import IntEnum
class StudentEnum(IntEnum):
NAME = 0
AGE = 1
SEX = 2
EMAIL = 3
print(s1[StudentEnum.NAME])
print(s1[StudentEnum.AGE])
方案二:使用标准库中collections.namedtuple替代内置tuple#1.4..如何为元祖中的每个元素命名,提高程序可读性
def func(student):
if student[1] < 18 :
pass
if student[2] == 'male':
pass
s1 = ('derek',22,'male','111@qq.com')
#第一种:使用枚举
from enum import IntEnum
class StudentEnum(IntEnum):
NAME = 0
AGE = 1
SEX = 2
EMAIL = 3
print(s1[StudentEnum.NAME])
print(s1[StudentEnum.AGE])
#第二种:使用标准库中collections.namedtuple替代内置tuple
from collections import namedtuple
Student = namedtuple('student',['name','age','sex','email'])
s2 = Student('derek',22,'male','222@qq.com')
print(s2[0]) #derek
# 可以通过s2.name获取姓名
print(s2.name) #derek
python3实用编程技巧_6.python3实用编程技巧进阶(一)相关推荐
- 华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能
/**************************************************************************** 输入联想 问题描述: 输入联想功能是非常实用 ...
- c语言联想输入法算法,华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能...
/**************************************************************************** 输入联想 问题描述: 输入联想功能是非常实用 ...
- 10个实用的但偏执的Java编程技术-扣丁学堂
10个实用的但偏执的Java编程技术 在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的-- 任何事情有可能出错,没错,的确如此. 这 ...
- python编程软件下载-Python3.9下载
Python3.9版是一款非常专业的电脑编程软件.相信有不少用户已经体验过之前的版本了,那么现在最新的版本3.9.0版本,已经在本年度向广大用户推出,更强大的功能,细节上的优化,适用于独立的.大型项目 ...
- 华章新春献礼:买基础编程图书,赠送实用月历
华章新春献礼 买基础编程图书,赠送实用月历 还有免费培训等您参与! 活动请访问: 点击此处进入互动网活动 点击此处进入卓越网活动 ================================== ...
- 值得一看的G32加工端面螺纹编程方法,很实用!
值得一看的G32加工端面螺纹编程方法,很实用! ① G32加工端面螺纹介绍: 概述:端面螺纹大多以矩形螺纹为主,车床的自定心卡盘(盘丝)使用的就是这种结构.这类螺纹没有具体的代号标注,一般是文字注释. ...
- Excel电子表格的使用技巧!很实用
电子表格的使用技巧!很实用啊! Excel高级使用技巧 1.编辑技巧 (1) 分数的输入 如果直接输入"1/5",系统会将其变为"1月5日",解决办法是:先输入 ...
- Word画线条5大技巧,简单实用!
[Word画线条5大技巧,简单实用!]1.输入三个"=",回车,就是一条双直线:2.输入三个"~",回车,就是一条波浪线:3.输入三个""回 ...
- APP技巧:微信10个实用小技巧,太实用了,赶紧收藏!
大家天天都在用微信,但是真正完全玩转微信的人也许并不多,今天小编给大家分享10个实用的小技巧,非常实用,赶紧分享给自己的朋友们吧! 一.对方正在输入 这个提示仅在收到消息后的10秒钟内,在对话框输入文 ...
最新文章
- 防止对 Visual Basic .NET 或 C# 代码进行反相工程
- python编程语法-Python编程入门——基础语法详解(经典)
- Java与邮件系统交互之使用Socket验证邮箱是否存在
- VM pow 函数 :undefined reference to `pow'
- 微信小程序黑客马拉松即将开始,来做最酷的 Mini Program Creators!
- distinct过滤掉重复记录并且显示所有字段_MySQL的所有姿势,我都帮你准备好了...
- 如何用普通人能理解的语言解释量子纠缠?
- C及C++中的一些基础知识点(持续更新)
- 用Python在图片上添加注释信息
- 方大东莞新材:实习总结报告PPT讲稿
- C++中的LPVOID类型
- 万网域名查询是否注册接口
- OrCAD多页原理图器件按页编号的设置
- Mstar 648 平台遥控器/按键包POWER键配置
- 小米手机显示崩溃日志
- 【目前点赞排名】投票倒计时五天:继续为你喜欢的征文作品投票吧!
- 你会的还只有初级安卓工程师的技术吗?论程序员成长的正确姿势
- [Warning] IPv4 forwarding is disabled. Networking will not work.
- 第三次作业——个人作业——软件产品案例分析
- 召集众位挑战者-2021百威校园挑战赛4月火热开启!
热门文章
- vue全局安装jquery,vue使用bootstrap框架,vue中封装websocket通讯,vue引入element-ui 组件库,引入highcharts图表插件
- windows和linux系统下测试端口连通性的命令
- mysql union 与 union all 语法及用法
- 【Java 8 新特性】Java Stream.of()用法示例
- java获取当月有几天_腾讯程序员裸辞3个月,转行去送外卖,曝出当月收入网友:又骗我去送外卖...
- php检测表大小,查询mysql数据库、表的大小
- java string字符操作_Java对String类型字符串的各种操作姿势
- linux sql 语句菜鸟,Linux安装mysql
- JVM 运行时数据区域总结
- SpringBoot入门教程