当前位置: 首页 > news >正文

初识python:一些基础的知识(推导式)

python3中的推导式

列表推导式

列表推导式的使用方法:

[表达式 for 变量 in 列表] 这样的,以及[表达式 for 变量 in 列表 if 条件]

lst = [1,2,3,4,5]
lst1 = [i for i in lst if i>3]
print(lst1)
'''
[4, 5]
'''
lst = ['qbz95','qbz191','qcq171','xm7','m4','akm']
lst1 = [print(i) for i in lst if len(i)<=3]
print(lst1)
'''
xm7
m4
akm
[None, None, None]
'''

元组推导式

元组推导式的使用方法和列表推导式的使用方法基本一致,外面包裹的[]变成了()。
可以通过range,字典,列表,元组,集合等快速生成一个新的元组,举例:
a = (i for i in range(10))
print(a)
'''
<generator object at 0x000001985197E980>
'''
可以看到返回的类型是一个生成器类型,这个时候我们可以使用tuple函数将这个生成器类型转换为元组类型,举例:

print(tuple(a))
'''
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
'''

字典推导式

字典推导式的使用方法:

{键_表达式 : 值_表达式 for 变量 in 列表} #要注意这里最后是列表而不是字典

{键_表达式 : 值_表达式 for 变量 in 列表 if 条件表达式}
lst = ['qbz95','qcq171','xm7','m4','akm']
dic = {key:len(key) for key in lst}
print(dic)
'''
{'qbz95': 5, 'qcq171': 6, 'xm7': 3, 'm4': 2, 'akm': 3}
'''
print(type(dic))
'''
<class 'dict'>
'''
提供3个数字,并以三个数字为键,三个数字的平方为值来创建字典:
x = list()
for i in range(3):
input_val = input(f'请输入第{i+1}个数字')
x.append(int(input_val))
print('最后的列表为',x)
new_dic = {value:value**2 for value in x}
print('最后的字典为 '+ str(new_dic))
'''
最后的列表为 [4, 1, 7]
最后的字典为 {4: 16, 1: 1, 7: 49}
'''

集合推导式

集合推导式的使用方法:

{表达式 for 变量 in 序列}

{表达式 for 变量 in 序列 if 条件判断}
new_set = {i**2 for i in range(10)}
print(new_set)
'''
{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}
'''
集合推导式和字典推导式很像,都是用花括号进行分隔,不同点在于字典推导式前方表达式中的形式为key:value,而集合推导式中的表达式部分的形式为value,输出的格式不同,这就是两者之间的区别。
new_set1 = {x for x in 'aboiasjdfoic' if x not in 'abc'}
print(new_set1)
'''
{'f', 's', 'i', 'd', 'j', 'o'}
'''

http://www.zskr.cn/news/2225.html

相关文章:

  • 小说写法分析-个人随记
  • Nuget的不是所配置的源之一
  • k60刷windows系统能玩什么游戏
  • 微服务高可用高并发方案
  • pip安装临时使用清华源
  • redis scan命令替换keys 命令
  • 记一次 .NET 某企业ECM内容管理系统 内存暴涨分析
  • 可编辑区域
  • docker-compose安装PostgreSQL和pgvector向量数据库
  • 【连续五届稳定检索、院士杰青云集】第六届先进材料与智能制造国际学术会议(ICAMIM 2025)
  • macbook airװwindowsϵͳ
  • ES 跨订单的详情全局分页 解决
  • 有关于简道云模式选择的思考
  • 详细介绍:80(HTTP默认端口)和8080端口(备用HTTP端口)区别
  • 一加9pro安卓14降级到安卓13记录
  • 【2025-09-08】社交活动
  • 【2025-09-10】满37周岁
  • 文件摆渡系统排名榜Top5揭晓:第一名安全高效又便捷
  • Canvas 计算文字宽高性能高效,解决了开源项目中的一个棘手问题!
  • 【SPIE出版】2025计算机视觉和影像计算国际学术会议(CVIC 2025)
  • 密码学工具包中的Hash函数
  • c# TargetFramework 应该写 net48 还是 net4.8
  • Docker 安装 Elasticsearch 报错
  • 代码是上午写的,公司是下午解散的!
  • Maven-和-Eclipse-全-
  • Prompt、RAG、微调
  • Android Kotlin请求权限及权限回调处理
  • 你好
  • Docker下载和安装-FOR Windows10版本
  • SLB和NAT网关的作用