推导式
"""
作用:化简代码
目录:
列表推导式
字典推导式
集合推导式
"""
一. 列表推导式
"""
作用:用一个表达式创建一个有规律的列表或控制一个有规律列表。
列表推导式又叫列表生成式。
"""
1.1 创建一个0-10的列表
while循环实现
list1 = [ ]
i = 0
while i < 11 :
list1. append( i)
i += 1
print ( list1)
for循环实现
list1 = [ ]
for i in range ( 11 ) :
list1. append( i)
print ( list1)
列表推导式实现
list1 = [ i for i in range ( 11 ) ]
print ( list1)
1.2 带if的列表推导式
"""
创建0-10的偶数列表
"""
方法一:range()步长实现
list1 = [ i for i in range ( 0 , 10 , 2 ) ]
print ( list1)
方法二:if实现
list1 = [ i for i in range ( 10 ) if i % 2 == 0 ]
print ( list1)
1.3 多个for循环实现列表推导式
"""
创建列表如下:
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
"""
list1 = [ ( i, j) for i in range ( 1 , 3 ) for j in range ( 3 ) ]
print ( list1)
二. 字典推导式
"""
快速合并列表为字典 或 提取字典中目标数据
"""
2.1 创建一个字典:字典key是1-5数字,value是这个数字的2次方。
dict1 = { i: i** 2 for i in range ( 1 , 5 ) }
print ( dict1)
2.2 将两个列表合并为一个字典
list1 = [ 'name' , 'age' , 'gender' ]
list2 = [ 'Tom' , 20 , 'man' ]
dict1 = { list1[ i] : list2[ i] for i in range ( len ( list1) ) }
print ( dict1)
"""
列表长度不同,
len统计列表长度多的会报错
少的不会
"""
list1 = [ 'name' , 'age' ]
list2 = [ 'Tom' , 20 , 'man' ]
dict1 = { list1[ i] : list2[ i] for i in range ( len ( list1) ) }
print ( dict1)
list1 = [ 'name' , 'age' ]
list2 = [ 'Tom' , 20 , 'man' ]
dict1 = { list1[ i] : list2[ i] for i in range ( len ( list2) ) }
print ( dict1)
2.3 提取字典中目标数据:电脑数量大于等于200的字典数据
counts = { 'MBP' : 268 , 'HP' : 125 , 'DELL' : 201 , 'Lenovo' : 199 , 'acer' : 99 }
count1 = { key: value for key, value in counts. items( ) if value >= 200 }
print ( count1)
三. 集合推导式
"""
注意:集合有数据去重功能
案例:
创建一个集合,数据为下方列表的2次方
list1 = [1, 1, 2]
"""
list1 = [ 1 , 1 , 2 ]
set1 = { i ** 2 for i in list1}
print ( set1)