Python 列表\集合\ 字典推导式、生成器表达式

Python 列表\集合?字典推导式、生成器表达式

列表推导式

  1. 循环模式
 l1 = [i for i in range(1,11)]
 l2 = [i ** 2 for i in range(100)]
 l3 = [f'python{i}' for i in range(50)]
  1. 筛选模式:

    l1 = [i for i in range(1,31) if i % 3 == 0]
  2. 嵌套循环:
    names = [['tom','billy','jefferson'],['wesley','steven','jennifer']]
    
    e = [ name for i in names for name in i if name.count('e') == 2]
    
    e = ['jefferson','wesley','steven','jennifer']

生成器表达式 # [] 变 ()

  1. 循环模式:

    g = (i for i in range(1,11))
    print(next(g))         #1
    print(next(g))          #2
  2. 筛选模式
    g = (i for i in range(50) if ...)
    
    print(next(g))         #1
    print(next(g))          #2

优缺点:

  1. 列表推导式-缺点:

    ? 有毒,不要太着迷

    ? 超过三层循环才能构建成功的,不建议使用

    ? 无法使用Debug 进行排错

  2. 列表推导式-优点:

    ? 一行结构,简单

    ? zb (23..)

    porker = [ i for i in range(2,11)] + list('JQKA')
    # [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']

列表推导式和生成器表达式的区别:

写法上 [] ()

iterable iterator

字典推导式:

list1 = ['jay','jj','meet']
list2 = ['周杰伦','林俊杰','panda']
mdict = {list2[i]: list[1] for i in range(len(list1))}
#{'周杰伦': 'jay', '林俊杰': 'jj', 'panda': 'meet'}

集合推导式:

{i for i in range(1,11)}

原文地址:https://www.cnblogs.com/pandaa/p/12038430.html

时间: 2024-08-02 05:48:45

Python 列表\集合\ 字典推导式、生成器表达式的相关文章

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

一,列表生成式 示例一: 生成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基础-三元表达式/列表推导式/生成器表达式

1.三元表达式:如果成立返回if前的内容,如果不成立返回else的内容 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2.列表推导式:l=['egg'+str(i) for i in range(1,11)] print(l) 3.生成器表达式: l=('egg'+str(i) for i in range(1,11) if i >6) for i in l: print(i) 原文地址:http

列表推导式----生成器表达式

列表推导式: 基本形式: [表达式  for  参数  in  可迭代对象]   或者 [表达式  for  参数  in  可迭代对象  if   条件] 实例: 1 l = [] 2 for i in range(100): 3 l.append('egg%s' %i) 4 print i 5 6 #不带if条件 7 l = ['agg%s' %i for i in range(100) ] 8 9 #带if条件 10 l = ['agg%s' %i for i in range(100)

三元表达式 列表推导式 生成器表达式

# 三元表达式# def my_max(x,y):# if x >= y:# return x# else:# return y## res=my_max(1,2)# print(res) # 2 # x=10# y=20# res=x if x >= y else y## print(res) # 20 # name=input('>>:name').strip()# res='Yes' if name == 'OBOS' else 'No'## print(res) # 列表推

(一)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*

python的各种推导式(列表推导式、字典推导式、集合推导式)

推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(list)推导式 字典(dict)推导式 集合(set)推导式 一.列表推导式 1.使用[]生成list 基本格式 variable = [out_exp_res for out_exp in input_list if out_exp == 2] out_exp_res: 列表生成元素表达式,可以是有返

Python 推导式(列表推导式,字典推导式,集合推导式)

Python的各种推导式 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导. 列表推导式 字典推导式 集合推导式 列表推导式 1.使用[]生成list var = [out_exp_put for out_exp in input_list if out_exp == 2] out_exp_put 列表生成出来的表达式,可以是有返回值的函数. for out_exp in input_list

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 # 指定索引

【python基础】列表推导式&字典推导式&集合推导式

一.定义 python的一种独有特性, 推导式是可以从一个数据序列构建另一个新的数据序列的结构体 列表推导式,字典推导式,集合推导式(集合是可变数据类型,集合中的元素是不可变数据类型) 1.列表推导式 提供了简单的生成列表的方法 (1)语法结构 ①list = [表达式 for item in 容器] ②list = [表达式 for item in 容器 if 条件] ③list = [表达式 for item1 in 容器1 for item2 in 容器2] (2)执行流程 ①循环遍历出容