问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

学习这个的吗Python3实用编程技巧进阶我

发布网友 发布时间:2022-04-05 23:39

我来回答

1个回答

热心网友 时间:2022-04-06 01:09

一、如何在列表,字典,集合中根据条件筛选数据?
问题1:
如何过滤掉列表[3,9,-1,10,20,-2]中的负数?
解决方法:
在Python中可以使用函数式编程,列表解析,字典解析集合解析等方式进行筛选。
1)最通常的方法:迭代
data = [3,9,-1,10,20,-2]res = []for x in data: if(x >= 0): res.append(x)print(res)
2)使用filter函数
from random import randintdata = [randint(-10,10) for x in range(10)] #在-10到10之间随机生成10个随机数newdata = list(filter(lambda x: x >= 0, data))print(newdata)
注意Python3中的filter函数返回的对象从列表改为了Iterator(迭代器),因此如果想返回一个列表,就要加上list()
3)列表解析
newdata2 = [x for x in data if x >= 0]print(newdata2)
结果和使用filter函数相同,但是使用列表解析所需的时间要比使用filter快很多,所以首选的方式就是列表解析,另外这两种方式都远快于迭代的方式。(推荐阅读:Python零基础入门在线网课)
问题2:
如何筛选出字典中值高于90的项?
解决方法:
from random import randintdic = {x: randint(60,100) for x in range(1,11)} #随机生成学号1到10的学生成绩newdic = {k:v for k,v in dic.items() if v >= 90} #同时迭代键和值,Python3中的iteritems变为itemsprint(newdic)
问题3:
如何筛选出集合{77,89,32,29,33}中能被3整除的元素?
解决方法:
s = {77,89,32,29,33}news = {x for x in s if x % 3 == 0}print(news)
二、如何为元组中的每个元素命名,提高程序的可读性?
实际案例:
如学生信息管理系统中数据为固定格式:
(名字,年龄,性别...)
学生数量很大,为了减少存储开销,对每个学生信息采用元组表示:
(‘jam’,16,’male’)
(‘tom’,18,’male’)
(‘july’,19,’female’)
...
访问元组时,需要使用索引(index)来访问,
如一个学生元组为student = ('jam',19,'male'),那么想要访问其名字时要使用student[0],访问其性别时要使用student[2]
由此带来的问题是大量的索引会降低程序的可读性,
那么如何来解决这个问题呢?
有两种解决方案:
方案1:定义枚举类型,也就是定义一系列数值常量
NAME = 0AGE = 1SEX = 2# NAME,AGE,SEX = range(1,4)student = ('jam',19,'male')print(student[NAME])print(student[AGE])
方案2:使用标准库中collections.namedtuple替代内置的tuple
from collections import namedtupleStudent = namedtuple('student',['name','age','sex']) #相当于创建了一个命名元组类,第一个参数是元组的名字,第二个参数是其属性s1 = Student('jam',18,'male') #可以直接传参s2 = Student(name='tom',age=20,sex='male') #也可以通过关键字传参print(s1.name) #通过属性来访问print(s2.age)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
用友填制凭证没有使用此科目进行制单的权限怎么设置 "ACURA"缩写代表的是“A Car Unquestionably Reliable Always”吗... 李煜的生平与词风变化的关系 华为叠屏手机怎么设置 手机双桌面怎么设置 一个合格的口译员需要具备哪些,当遇到不会的怎么办,用英语描述 win7用哪个杀毒软件和防火墙比较好啊,最好占系统资源不... ...函数值(不用计算器), 比如说我知道角度为270如何求余弦值 7cos270度加sin270度加tan765度 计算 7cos270°怎么算 python写代码的小技巧 Python中的7个实用小技巧! 英语26个字母怎么背 怎么快速记忆26个字母? 26个字母速记口诀方法是什么? 笔记本电脑4G独显和2G独显区别大吗? 小白求助笔记本电脑2g独显和4g独显有什么区别 显卡2g独显和4g独显的区别 2G和4G独显区别大吗? 2G独显和4G独显区别大吗? 2g独显需要什么样的配置 怎么知道电脑是2g独显还是4G独显?这里面能看吗? 电脑8G 1T+128GSSD/3YCD 2G独显是什么? 独显2g怎么定义参数 电脑1g独显和2g,4g独显有哪些不同,昗具体的介绍一下! win7虚拟wifi图标不见了 win7右下角的无线网络连接图标如何重新调出?驱动安装正常! 捷威win7台式电脑怎么打开vt win7怎么开启vt按dle怎么出启动管理器? 2k屏和4k屏区别 python 内置函数难题 列出Python模块中的所有函数问题,怎么解决 使用python内建函数,如何分析复杂度 5.编写测试用例的代码时,经常会使用到函数, 那么Python中函数是什么? 有什么作用? 如何使用? 现在企业里面,PHP做项目的话用的最多的框架是什么啊? 如何更改xampp的端口 怎样修改XAMPP的Apache的80端口? XAMPP导入.SQL之后,如何修改默认端口? xampp中phpadmin的默认端口80怎么改了还不能使用 mac xampp怎么修改端口号 本地Wordpress,使用Xampp配置,默认端口未80,OK,修改Xampp的Apache服务的默认端口未8081,访问失败 为什么修改xampp的默认端口号以后,点击admin不能访问网页是什么原因 如何修改xampp的默认路径? 怎么修改Xampp中Apache服务器的端口号 XAMPP我把apache端口号从80改成82了,我想知道怎样才用localhost不加端口号也能访问。 用php-redis给全部用户发送邮件,数据量很大,思路应该是什么样的 PHP 如何实现2w用户的短信发送 PHP 如何在Redis中实现事物(事物提交和事物 用phpredis操作redis集群支持publish和subscribe吗 php redis实现秒杀 怎么分开执行