189 8069 5689

关于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函数式的信息
分享URL:http://cdxtjz.cn/article/dsiccig.html

其他资讯