(一)Python入门-4控制语句:10推导式创建序列-列表推导式-字典推导式-集合推导式-生成器推导式

推导式创建序列:

  推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合, 从而避免冗长的代码。推导式是典型的Python 风格,会使用它代表你已经超过Python初 学者的水平。

一:列表推导式

  列表推导式生成列表对象,语法如下:

    [表达式 for item in 可迭代对象 ]

    或者:{表达式 for item in 可迭代对象 if 条件判断}

 1 #列表推导式
 2 x = [x for x in range(1,5)]
 3 print(x)
 4
 5 x = [x*2 for x in range(1,5)]
 6 print(x)
 7
 8 x = [x*2 for x in range(1,100) if x%5 == 0]
 9 print(x)
10
11 x = [x for x in ‘abcdefg‘]
12 print(x)
13
14 cells = [(row,col) for row in range(1,5) for col in range(1,5)]  #可以使用两个循环
15 print(cells)
16 for cell in cells:
17     print(cell)

二:字典推导式

  字典的推导式生成字典对象,格式如下: {key_expression : value_expression for 表达式 in 可迭代对象}

  类似于列表推导式,字典推导也可以增加 if条件判断、多个 for 循环。

1 #统计字符出现的次数
2 text = ‘i love you, i love me, i love family‘
3 char_count = {c:text.count(c) for c in text}
4 print(char_count)

三:集合推导式

  集合推导式生成集合,和列表推导式的语法格式类似: {表达式 for item in 可迭代对象 } 或者:{表达式 for item in 可迭代对象 if 条件判断}

1 #集合推导式:集合的底层是字典(只有字典的key,没有字典的values)
2 x = {x for x in range(1,100) if x%9 == 0}
3 print(x)

四:生成器推导式(生成元组)

  元组有没有推导式?

    >>> (x for x in range(1,100) if x%9==0)

    <generator object <genexpr> at 0x0000000002BD3048>

  我们发现提示的是“一个生成器对象”。显然,元组是没有推导式的。

  一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代数据就没有了(需要重新生成一个生成器)。

1 #生成器推导式(生成元组)
2 gnt = (x for x in range(1,100) if x%9 == 0)
3 print(gnt)
4 for x in gnt:  #循环遍历生成器对象gnt
5     print(x,end=‘\t‘)
6 for x in gnt:  #再次循环遍历生成器对象gnt,发现没有数据了
7     print(x,end=‘\t‘)

五:综合练习

  1. 【操作】绘制多个同心圆

 1 import turtle
 2 t = turtle.Pen()
 3 t.width(4)
 4 t.speed(10)
 5 my_colors = (‘red‘,‘green‘,‘yellow‘,‘black‘)
 6 for i in range(10):      #0  1  2  3  4  5
 7     t.penup()
 8     t.goto(0,-i*5)       #0  5  10  15  20  25
 9     t.pendown()
10     t.color(my_colors[i%my_colors.__len__()])
11     t.circle(10+i*5)     #10  15  20  25  30  35
12
13 turtle.done()  #程序执行完,窗口仍然在

  2. 【操作】绘制18*18 棋盘

 1 #绘制18*18的棋盘
 2 import turtle
 3 width = 20
 4 num = 18
 5 x1 = [(-200,200),(-200+width*num,200)]
 6 y1 = [(-200,200),(-200,200-width*num)]
 7 t = turtle.Pen()
 8 t.speed(10)
 9 # t . g o t o ( x 1 [ 0 ] [ 0 ] , x 1 [ 0 ] [ 1 ] )
10 # t . g o t o ( x 1 [ 1 ] [ 0 ] , x 1 [ 1 ] [ 1 ] )
11 for i in range(0,19):
12     t.penup()
13     t.goto(x1[0][0],x1[0][1]-20*i)
14     t.pendown()
15     t.goto(x1[1][0],x1[1][1]-20*i)
16 for i in range(0,19):
17     t.penup()
18     t.goto(y1[0][0]+20*i,y1[0][1])
19     t.pendown()
20     t.goto(y1[1][0]+20*i,y1[1][1])
21 t.hideturtle()   # 隐 藏 画 笔
22 turtle.done()    # 保 证 运 行 窗 口 不 被 自 动 关 闭

原文地址:https://www.cnblogs.com/jack-zh/p/10836416.html

时间: 2024-12-26 23:42:42

(一)Python入门-4控制语句:10推导式创建序列-列表推导式-字典推导式-集合推导式-生成器推导式的相关文章

python推导式创建序列

推导式创建序列 推导式是一个或多个迭代器快速创建序列的一种方式.可以将循环和条件判断结合,简化代码.几个推导式注意符号的使用,比如小括号,方括号,大括号等等. 列表推导式 列表推导式生成列表对象,语法: [表达式 for item in 可迭代对象] 或者:[表达式 for item in 可迭代对象 if 条件判断] 字典推导式 字典推导式生成字典对象,语法如下: {key_expression:value_expression for 表达式 in 可迭代对象} 也可以使用多个循环和判断 统

(一)Python入门-4控制语句:02单分支选择结构-条件表达式详解

一:选择结构介绍 选择结构通过判断条件是否成立,来决定执行哪个分支.选择结构有多种形式,分为:单分 支.双分支.多分支.流程图如下: 二:单分支选择结构 if语句单分支结构的语法形式如下: if 条件表达式: 语句/语句块 其中:1条件表达式:可以是逻辑表达式.关系表达式.算术表达式等. 2语句/语句块:可以是一条语句,也可以是多条语句.多条语句,缩进必须对齐一致. 三:条件表达式详解 在选择和循环结构中,条件表达式的值为 False的情况如下: False.0.0.0.空值 None.空序列对

(一)Python入门-4控制语句:01PyCharm的开发环境的下载安装配置-项目创建和运行

控制语句介绍: 前面学习的变量.数据类型(整数.浮点数.布尔).序列(字符串.列表.元组.字 典.集合),可以看做是数据的组织方式.数据可以看做是“砖块”! 流程控制语句是代码的组织方式,可以看做是“混凝土”. 一个完整的程序,离不开“砖块”,也离不开“混凝土”.他们的组合,才能让我们建 立从小到“一个方法”,大到“操作系统”,这样各种各样的“软件”. 一:PyCharm下载安装 下载地址:https://www.jetbrains.com/pycharm/download/#section=w

(一)Python入门-4控制语句:06for循环结构-遍历各种可迭代对象-range对象

一:for循环和可迭代对象遍历 for 循环通常用于可迭代对象的遍历.for 循环的语法格式如下: for 变量 in 可迭代对象: 循环体语句 可迭代对象: Python包含以下几种可迭代对象: 1. 序列.包含:字符串.列表.元组 2. 字典 3. 迭代器对象(iterator) 4. 生成器函数(generator) 5. 文件对象 [操作] 1 #测试for循环 2 for x in (20,30,40): #元组 3 print(x*2) 4 5 for x in 'abcdefg':

(一)Python入门-4控制语句:08循环中的break-continue-else

一:break语句 break语句可用于 while 和for 循环,用来结束整个循环.当有嵌套循环时,break 语句只 能跳出最近一层的循环. [操作]使用 break 语句结束循环 1 #测试break 遇到break结束整个循环体.continue结束当前本次循环,继续下一次循环 2 while True: 3 s = input('请输入一个字符(遇到Q或q结束循环):') 4 if s=='Q' or s=='q': 5 print('程序运行结束!') 6 break 7 else

(一)Python入门-4控制语句:07嵌套循环-练习

嵌套循环及练习: 一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”. [练习] 1 #测试嵌套循环 2 for x in range(5): 3 for y in range(5): 4 print(x,end='\t') 5 print() #起到换行的作用 6 7 print('##############################') 8 #嵌套循环打印九九乘法表 9 for x in range(1,10): 10 for y in range(1,x+1):

python入门基础教程10 python的分支语句

if分支语句 分支语句的作用是在某些条件控制下有选择的执行实现一定功能语句块.if 分支语句则是当if后的条件满足时,if 下的语句块被执行,语法格式如下所示: if <condition>:     statements 让我们看看代码吧. >>> sex = 'male' >>> if sex == 'male':      print 'Man!'#此处有两次回车键 Man! >>> if sex == 'female':      

python 如何在列表list,字典dict,集合set 中根据条件筛选数据

from random import randint """ list 过滤掉负数 """ data = [randint(-10, 10) for _ in xrange(10)] print data # [7, 2, -5, -5, 2, -4, -7, 6, -9, 9] d1 = filter(lambda x: x >= 0, data) print d1 # [7, 2, 2, 6, 9] # ------- 这个快 d2 =

2018-06-20 中文代码示例视频演示Python入门教程第四章 控制流

知乎原链 续前作: 中文代码示例视频演示Python入门教程第三章 简介Python 对应在线文档: 4. More Control Flow Tools 录制中出了不少岔子. 另外, 输入法确实是一个短板. 中文代码示例Python入门教程 4.1 if条件语句 & 4.2 for语句_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili? 中文代码示例Python入门教程 4.3 range函数_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili? 中文代码示例Python入门教程 4.4 b