首页 > 编程语言 >Python 推导式

Python 推导式

时间:2023-06-12 09:04:26浏览次数:36  
标签:推导 nums Python list1 列表 range print

推导式简介

Python 推导式是一种别具一格的数据处理形式,可以由一个数据序列构建另一个数据序列,python 中支持一下数据结构的推导式

  • 列表推导式
  • 元组推导式
  • 字典推导式
  • 集合推导式

列表推导式

列表推导式使用很频繁,也称为列表解释式,其作用使用一种优雅的形式来创建列表

格式 【表达式 for 变量 in iterable(可迭代对象)】或 【表达式 for 变量 in iterable(可迭代对象) if 条件 】

说明:列表推导式从左到右一次递进,语句之间有嵌套关系

案例1、输出1~8的数字列表

nums = [x for x in range(1,9)]
print(nums) #[1, 2, 3, 4, 5, 6, 7, 8]

案例2、带有运算的推导式

# 每个元素 - 1
nums = [x - 1 for x in range(1, 9)]
print(nums) #[0, 1, 2, 3, 4, 5, 6, 7]

# 每个元素 * 2
nums = [x - 1 for x in range(1, 9)]
print(nums) #[0, 1, 2, 3, 4, 5, 6, 7]

# 每个元素 * 2
nums = [x * 2 for x in range(1, 9)]
print(nums) #[2, 4, 6, 8, 10, 12, 14, 16]
# 每个元素 * 元素
nums = [x * x for x in range(1, 9)]
print(nums) #[1, 4, 9, 16, 25, 36, 49, 64]

案例3、带有条件判断的推导式

# 求1~55被5整除的数
nums = [x for x in range(1, 56) if x % 5 == 0]
print(nums) #[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]
# 求1~55被5整除的数,再除5
nums = [x // 5 for x in range(1, 56) if x % 5 == 0]
print(nums) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

字符串遍历

 

list1 = [x for x in 'OpenAI']
print(list1) #['O', 'p', 'e', 'n', 'A', 'I']
#双遍历字符相加
list1 = [x + y for x in 'OpenAI' for y in '01']
print(list1) #['O0', 'O1', 'p0', 'p1', 'e0', 'e1', 'n0', 'n1', 'A0', 'A1', 'I0', 'I1']

元组推导式

num = (x for x in range(0,5))
print(num) #<generator object <genexpr> at 0x000001F2B72C70B0>

num = tuple((x for x in range(0,5)))
print(num) #(0, 1, 2, 3, 4)

说明使用元组推导式时,需要家 tuple

字典推导式

直接上案例

dict1 = {x:x*x for x in range(1,5)}
print(dict1)#{1: 1, 2: 4, 3: 9, 4: 16}

list1 = ['openai','pyth','on']
dict1 = {key:len(key) for key in list1}
print(dict1) #{'openai': 6, 'pyth': 4, 'on': 2}

标签:推导,nums,Python,list1,列表,range,print
From: https://www.cnblogs.com/wdh01/p/17433304.html

相关文章

  • 【python基础】复杂数据类型-字典(增删改查)
    1.初识字典字典,是另外一种复杂的数据类型,相较于列表,字典可以将相关信息关联起来。比如说一个人的信息有名字、年龄、性别等,如果用列表存储的话,不能表示他们之间是相关联的,而字典可以,字典是一个或多个键值对组成列表的标志是[],字典的标志是{},其语法格式:{键1:值1,键2:值2,,,,,,......
  • Python程序与设计
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • Python自动化运维
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • Python生成指定大小的文件
    转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.top/400bd75c.html你好,我是测试蔡坨坨。在日常测试工作中,我们经常需要对上传的文件大小进行测试,例如:一个文件上传功能,限制文件大小最大为10MB,此时我们可能需要测试10MB以及其边界值9MB和11MB;再或者我们有时需要测试一个超大......
  • Centos7python升级3.6升级到3.11.4
    1.下载安装包并上传到服务器https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz2.解压tar-zxfPython-3.11.4.tgz 3.升级升级依赖进入源码目录并编译安装3.1 安装依赖yumgroupinstall"Developmenttools"-yyuminstallzlib-develbzip2-developen......
  • 实验6 turtle绘图与python库应用编程体验
    task1-1源代码1fromturtleimport*23defmove(x,y):4'''画笔移动到坐标(x,y)处'''5penup()6goto(x,y)7pendown()89defdraw(n,size=100):10'''绘制边长为size的正n变形'''1......
  • Centos7安装python
    1.熟悉官网及安装pythonhttps://www.python.org/  安装python1. yum-builddeppython3-y安装依赖:yumgroupinstall"Developmenttools"-yyuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-devellibffi-devel-y......
  • Python判断字符串是否包含特定子串的7种方法(转)
    转自:Python判断字符串是否包含特定子串的7种方法在写代码的过程中,我们经常会遇到这样一个需求:判断字符串中是否包含某个关键词,也就是特定的子字符串。比如从一堆书籍名称中找出含有“python”的书名。判断两个字符串相等很简单,直接==就可以了。其实判断包含子串也非常容易,而且......
  • python编码decode和encode
                文章来源:https://www.cnblogs.com/skyflask/p/7622991.html ......
  • Python Django Restful API simple JWT
    在这种情况下,您可以创建一个自定义权限类,并检查用户所属的任何组是否具有相应的权限。例如,您可以在Django后台为每个组定义一个具有读取权限(`view`权限)的权限对象。然后,在自定义权限类中检查用户组是否具有此权限。首先,在`models.py`文件中创建一个新的权限。例如,创建一个名......