首页 > 编程语言 >【测试开发学习历程】python推导式

【测试开发学习历程】python推导式

时间:2024-04-07 16:03:46浏览次数:18  
标签:推导 迭代 python str1 列表 print 历程 字典

Python当中有如下的推导式:

  • 列表推导式

  • 字典推导式

  • 集合推导式

  • 生成器推导式

推导式的作用是可以快速地生成一个列表、字典或者集合,同时简化代码。

下面我们来介绍一下python中的推导式:

1 列表推导式

列表推导式的语法:

[结果 for 变量 in 可迭代对象] 或者 [结果 for 变量 in 可迭代对象 if 布尔表达式]

举例:

# 普通形式
## 以列表的形式输出100以内的正偶数
list1=[]
for i in range(1,101):
    if i%2==0:
    list1.append(i)
print(list1)
​
# 列表推导式举例
# 把100以内(含)的偶数放到列表中输出
print([i for i in range(1,101) if i%2==0])
​
# 列表推导式不加if
print([i for i in range(2,101,2)])
​
# 统计字符串中只出现一次的字符,以列表返回字符串
str1="helloworld"
print([i for i in str1 if str1.count(i)==1])

2 字典推导式

语法:

{结果 for 变量 in 可迭代对象}

或者

{结果 for 变量 in 可迭代对象 if 布尔表达式};

注意字典推导式的结果是键值对,即

key:value

举例:

tupl1=(("姓名","张三"),("年龄",20),("体重",190),("身高",180))
print({i:j for i,j in tupl1})
​
#交换key和value的位置
print({j:i for i,j in tupl1})
​
#加判断条件
print({i:j for i,j in tupl1 if j !=190})
​
#统计字符串中每个字符出现的次数,以字典返回
str1="helloworld"
print({i:str1.count(i) for i in str1})
​
#统计字符串中只出现一次的字符,以字典返回字符及出现次数
str1="helloworld"
print({i:str1.count(i) for i in str1 if str1.count(i)==1})

3 集合推导式

语法:{结果 for 变量 in 可迭代对象} 或者 {结果 for 变量 in 可迭代对象 if 布尔表达式};集合推导式跟字典推导式的区别是:字典推导式的结果是键值对,集合推导式的结果是单个结果。

举例:

dict1={"姓名":"张三","年龄":20,"体重":180,"身高":180}
print({x for x in dict1.keys()})
print({x for x in dict1.values()})
# 加if判断,只取int类型的数据
print({x for x in dict1.values() if type(x)==int})

4 生成器推导式

语法:

(结果 for 变量 in 可迭代对象)

或者

(结果 for 变量 in 可迭代对象 if 布尔表达式)

举例:

gen_1 = (a**2 for a in range(1,10))
​
#用元组形式展示数据
print(tuple(gen_1))

标签:推导,迭代,python,str1,列表,print,历程,字典
From: https://blog.csdn.net/Sodagreen_yyds/article/details/137466383

相关文章

  • 并查集——蓝桥杯备赛【python】
    一、合根植物试题链接:[蓝桥杯2017国C]合根植物问题描述星球的一个种植园,被分成m×n个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小......
  • python UTF-8解码及脚本头的标注
    在Python中,如果你需要将编码为UTF-8的字节串解码为Unicode字符串,你可以使用内置的str类型的decode方法,或者使用bytes.decode()方法。但通常情况下,如果你已经在Python3中处理字符串,你可以直接将字节串(类型bytes)转换为字符串(类型str)。例如:python#假设我们有以下UTF-8编码的......
  • Python算法学
    Python算法学习平台有很多,它们提供了丰富的资源和工具,帮助学习者从基础到高级的算法知识。以下是一些流行的Python算法学习平台:1.**LeetCode**:-网址:[https://leetcode.com/](https://leetcode.com/)-特点:LeetCode是一个非常受欢迎的在线编程平台,提供了大量的编程挑战,主......
  • 货币系统—背包问题—python题解
    题目链接:货币系统题目描述:给定V种货币(单位:元),每种货币使用的次数不限。不同种类的货币,面值可能是相同的。现在,要你用这V种货币凑出N元钱,请问共有多少种不同的凑法。输入格式第一行包含两个整数V和N。接下来的若干行,将一共输入V个整数,每个整数表示一种货币的......
  • 5G网络建设【华为OD机试】(JAVA&Python&C++&JS题解)
    一.题目-5G网络建设现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站,编号固定为1到N,接下来需要各个基站之间使用光纤进行连接以确保基站能互联互通,不同基站之间架设光纤的成本各不相同,且有些节点之间已经存在光纤相连,请你设计算法,计算出能联通这些基站的最小成本是......
  • 项目排期【华为OD机试】(JAVA&Python&C++&JS题解)
    一.题目项目组共有N个开发人员,项目经理接到了M个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。假定各个需求直接无任何先后依赖关系,请设计算法帮助项目经理进行工作安排,使整个项目能用最少的时间交付。输入描述:第一行输入为M个需......
  • 找城市【华为OD机试】(JAVA&Python&C++&JS题解)
    一.题目-找城市一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连,要么通过其它城市中转相连(可中转一次或多次)。城市与城市之间的道路都不会成环。当切断通往某个城市i的所有道路后,地图上将分为多个连通的城市群,设该城市i的聚集度为DPi(DegreeofP......
  • 电脑病毒感染【华为OD机试】(JAVA&Python&C++&JS题解)
    一.题目-电脑病毒感染一个局域网内有很多台电脑,分别标注为0-N-1的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t表示。其中网络内一个电脑被病毒感染,其感染网络内所有的电脑需要最少需要多长时间。如果最后有电脑不会感染,则返回-1给定一个数组times表示......
  • 两个字符串间的最短路径问题【华为OD机试】(JAVA&Python&C++&JS题解)
    一.题目-两个字符串间的最短路径问题给定两个字符串,分别为字符串A与字符串B。例如A字符串为ABCABBA,B字符串为CBABAC可以得到下图m*n的二维数组,定义原点为(0,0),终点为(m,n),水平与垂直的每一条边距离为1,映射成坐标系如下图。从原点(0,0)到(0,A)为水平边,距离为1,从(0,A)......
  • Python学习(八):python面向对象编程
    文章目录python面向对象编程类的定义类的实例化类的静态变量与静态方法类的静态变量类的静态方法@staticmethod类的类方法@classmethod类的继承单继承多继承多层继承类方法的重写类方法的重载调用父类的方法super函数python面向对象编程面向对象(ObjectOriented)......