12. 函数-推导式

一、列表推导式

1. 语法格式
    [ 结果 for 变量 in 可迭代对象 if 条件 ]

2. 代码示例
    # 100以内能被3整除的数的平方
    gen = [i * i for i in range(100) if i % 3 == 0]
    for num in gen:
        print(num)

二、生成器推导式

1. 语法格式
    ( 结果 for 变量 in 可迭代对象 if 条件 )

2. 代码示例
    # 100以内能被3整除的数的平方
    gen = (i * i for i in range(100) if i % 3 == 0)
    gen.__next__()

    for num in gen:
        print(num)

三、字典推导式

1. 语法格式
    {key: value for循环 if 筛选}

2. 代码示例
    dic = {"张无忌":"九阳神功", "乔峰":"降龙十八掌", "楚留香":"帅"}
    d = {dic[k]: k for k in dic}
    print(d)

四、集合推导式

1. 语法格式
    {key for if}

2. 代码示例
    lst = ["周杰伦","周伯通","周润发","周伯通","周笔畅","周伯通","周星驰","周伯通"]
    s = {el for el in lst}
    print(s)

备注:?成器表达式和列表推导式的区别:

  • 列表推导式比较耗内存. ?次性加载. ?成器表达式?乎不占?内存. 使?的时候才分 配和使?内存
  • 得到的值不?样. 列表推导式得到的是?个列表. ?成器表达式获取的是?个?成器.?成器的惰性机制: ?成器只有在访问的时候才取值

原文地址:https://www.cnblogs.com/hq82/p/11745641.html

时间: 2024-11-05 23:38:13

12. 函数-推导式的相关文章

python之路---12 生成器 推导式

三十.函数进阶 1.生成器    函数中有yield 的就是生成器函数(替代了return) 本质就是迭代器   一个一个的创建对象     节省内存 ①创建生成器       最后以yield结束 1. 通过?成器函数   2. 通过各种推导式来实现?成器 3. 通过数据的转换也可以获取?成器 ②send用法 send 和 __next__都是下一个的意思 但send可以给上一个yield 位置传值   不能给最后?个yield发送值. 在第?次执?? 成器代码的时候不能使?send() ③y

巨蟒python全栈开发-第12天 生成器函数 各种推导式 yield from

一.今日主要内容总览(重点) 1.生成器(目的:帮助我们创建对象) (1)生成器的本质就是迭代器 (2)一个一个的创建对象 (3)创建生成器的方式: 1.生成器函数 2.通过生成器表达式来获取生成器 3.类型转换(看不到) 2.生成器函数(重点) (1)生成器函数中包含 yield关键字,返回数据和return差不多 return会立即结束和这个函数的执行 yield 可以分段的执行一个函数 (2)大坑(五星重点): 生成器函数在执行的时候返回生成器,而不是直接执行次函数 (3)能向下执行的两个

三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

一 三元表达式.列表推导式.生成器表达式 1.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2.列表推导式 #1.示例 egg_list=[] for i in range(10): egg_list.append('鸡蛋%s' %i) egg_list=['鸡蛋%s' %i for i in range(10)] #2.语法 [expression for item1 in iterabl

python学习笔记(八)函数return多个值,列表推导式和交换两个变量的值

函数return多个值: 补充知识点:写代码得到时候少用全局变量: 1.不安全 2.会一直占着内存不释放 函数多个return值,那么会把这几个return的值都放在一个元组里面,然后返回 1 def hello(a,b,c,d): 2 return a,b,c,d 3 res=hello('ybq','ede','rfv','deq') 4 print(res)#('ybq', 'ede', 'dede', 'deq') 列表推导式: 1 #列表推导式 2 nums=[0,1,3,4,5,6,

day14,列表推导式,生成器表达式,内置函数

一.列表推导式.生成器表达式: # li = []# for i in range(1,101):# li.append(i)# print(li) #l1 = [python1期,python2期,python3期.....]# l1 = []# for i in range(1,12):# l1.append('python%s期' % i)# print(l1)#一行搞定,列表推导式:用列表推导式能够构建的任何列表,用别的都可以构建.#一行,简单,感觉高端.但是,不易排错.# li = [

(列表推导式,生成器表达式,内置函数)

一,列表生成式 示例一: 生成1~100的列表 生成1-100的列表 1 2 3 4 5 li = [] for i in range(1,101):     li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期~11期li = []for i in range(1,12): li.append('python{}期'.format(i))print(li) 执行输出: ['python1期', 'python2期', 'python3期'...]

python高级内置函数和各种推导式的介绍:一行搞定的代码

一.知识要点 all 都为真 any 有真的 min 最小的 max 最大的 sum 求和 reversed 反转 sorted 排序 zip 对应合并 [] 列表推倒式 () 生成器 {} 字典推倒式 set 去重 if三元操作符 xx if x else y ennmerate 枚举,带索引 二. 代码 "1. all" # 参数为一个可迭代的对象(Iterable) m =[1, 2, 3, 4, ''] # 当然不是这样简答的使用 print(all(m)) def a1():

Python:enumerate函数、introspection对象自省、推导式(列表(list)推导式、字典(dict)推导式、集合(set)推导式)

枚举(enumerate)是Python内置函数.它允许我们遍历数据并?动计数,例如下面这样:for counter, value in enumerate(some_list): print(counter, value)不只如此,enumerate也接受?些可选参数,这使它更有?.例如:for counter, value in enumerate(some_list,1): # 指定从1开始计数 print(counter, value)还可以?来创建包含索引的元组列表. 1 # 指定索引

11生成器相关及推导式(附内置函数分析图url)

1.生成器: 生成器的本质就是迭代器 生成器的特点和迭代器一样,取值方式也和迭代器一样(__next__(),send():给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创建 其实就是手写的迭代器 2.生成器函数 和普通函数没有区别,函数里面由yield的函数的就是生成器函数 生成器函数在执行的时候,默认不会执行函数体,而是返回生成器,通过生成器的__next__()分段来执行这个函数 send():给上一个yield传值,不能在开头(没有上一次yield),同作一个yiel