关于python3函数式的信息

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

一、如何在列表,字典,集合中根据条件筛选数据?

成都创新互联公司技术团队10年来致力于为客户提供成都网站设计、网站制作、高端网站设计网络营销推广、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了1000多家网站,包括各类中小企业、企事单位、高校等机构单位。

问题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)

Python3之字符串格式化format函数详解(上)

概述

在Python3中,字符串格式化操作通过format()方法或者f'string'实现。而相比于老版的字符串格式化方式,format()方法拥有更多的功能,操作起来更加方便,可读性也更强。该函数将字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号{}作为特殊字符代替%。

位置设定

默认位置

不指定格式化位置,按照默认顺序格式化

示例结果:

设置位置

设置数字顺序指定格式化的位置

示例结果:

设置关键字

设置关键字指定格式化的内容

示例结果:

参数传递

我们可以传入各种类型参数格式化字符串,即不限于字符串变量或数字等。

元组传参

利用元组传参,传参形式 *tuple

示例结果:

字典传参

示例结果:

列表传参

示例结果:

python中的format函数怎么使用

首先按下“Win+R”组合键,打开运行窗口。在打开文本框输入“cmd”,点击确定。在打开的cmd窗口中,输入:“python”,点击Enter键。在Python环境中,输入:“x = format(0.5, '%')”,点击Enter键。在Python环境中,输入:“print(x)”,详细步骤:

1、首先按下“Win+R”组合键,打开运行窗口。

2、在打开文本框输入“cmd”,点击确定。

3、在打开的cmd窗口中,输入:“python”,点击Enter键。

4、在Python环境中,输入:“x = format(0.5, '%')”,点击Enter键。

5、在Python环境中,输入:“print(x)”。

6、点击Enter键,即可使用Python内置的format函数把数字0.5格式化为百分比值。

python3 函数 用 try except

def silly_function(a):

try:

print(int(a) + a)

except ValueError:

print("Hmmm...I can't use that value")

except TypeError:

print("Your input is invalid!")

silly_function(2)

标题名称:关于python3函数式的信息
分享网址:https://www.cdcxhl.com/article6/dsiccig.html

成都网站建设公司_创新互联,为您提供网站收录网站制作网页设计公司网站设计公司网站策划面包屑导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设