不懂列表推导式、字典推导式?一文搞懂Python的所有推导式
推导式简介
就是用简单的方式来创建列表、字典、元组等可迭代数据对象。
一 列表推导式
列表推导式是Python中最常用的推导式之一,精炼写法为:
列表名 = [ 写入的值 写入的范围或条件]
1 基本的列表推导式
建立列表:1到100的数字
list1 = [i for i in range(1,101)]
#相当于:
list1 = []
for i in range(1,101):
list1.append(i)
2 带计算式的列表推导式
建立列表:1到9所有数的平方
list1 = [ i**2 for i in range(1,10)]
#相当于:
list1 = []
for i in range(1,10):
list1.append(i**2)
3 带条件的列表推导式
建立列表:100以内所有可整除3的数
list1 = [i for i in range(1,101) if i%3==0]
#相当于:
list1 = []
for i in range(1,101):
if i%3==0:
list1.append(i)
4 嵌套的列表推导式
建立列表:将两个列表内元素一一对应成元组
list1 = ["a", "b", "c"]
list2 = [1,2,3]
list3 = [(i,j) for i in list1 for j in list2]
#相当于:
list3 = []
for i in list1:
for j in list2:
a = (i, j)
list3.append(a)
二 字典推导式
格式与列表推导式差不多,但是需要写成字典的格式。
建立字典:{单词:单词的字数}
list1 = ["hello", "china", "who"]
dict1 = {i:len(i) for i in list1}
#相当于:
list1 = ["hello", "china", "who"]
dict1 = {}
for i in list1:
dict1[i] = len(i)
三 其他
集合、元组等也可以写推导式,看了上面关于列表推导式和字典推导式的写法,估计你应该已经会了吧,自己试试吧,记得给自己提升一下难度!