大家好,我是你的好朋友思创斯。今天说一说python中特别好用的推导式,希望您对编程的造诣更进一步.
推导式:
定义:推导式comprehensions(又称解析式),是python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列。
一.列表推导式:
1.基本格式: 变量名 = [表达式 for 临时变量 in 列表]
2.练习: 将lst中每一个元素进行平方后放入到一个新列表中
一般方法:
lst = [1,2,3,4]
new_lst = []
for i in lst:
num = i*i
new_lst.append(num)
print(new_lst)
是否还在为ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!
【正版授权,激活自己账号】:
【官方授权 正版激活】:
输出结果:[1,4,9,16]
列表推导式:
lst = [1,2,3,4]
new_lst = [i*i for i in lst]
print(new_lst)
输出结果:[1,4,9,16]
求出lst 中是奇数的值,然后放入到一个新列表中
一般方法:
lst = [1,2,3,4,5,6,7,8]
new_lst = []
for i in lst:
if i %2==1:
new_lst.append(i)
print(new_lst)
输出结果:[1,3,5,7]
列表推导式:
lst = [1,2,3,4,5,6,7,8]
new_lst = [i for i in lst if i%2==1]
print(new_lst)
输出结果:[1,3,5,7]
将一个嵌套列表转换成一个一维列表:
一般方法:
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_lst = []
for lst1 in lst:
for i in lst1:
new_lst.append(i)
print(new_lst)
输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
列表推导式:
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_lst = [i for lst1 in lst for i in lst1]
print(new_lst)
输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
# 现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]
# 要求出1/4/7 和 1/5/9 元素,思考如何取出
一般方法取1,4,7
lst = [[1,2,3],[4,5,6],[7,8,9]]
new_lst = []
for i in range(len(lst)):
ret = lst[i][0] # 利用切片
new_lst.append(ret)
print(new_lst)
输出结果:[1,4,7]
列表推导式:
lst = [[1,2,3],[4,5,6],[7,8,9]]
new_lst = [lst[i][0]for i in range(len(lst))]
print(new_lst)
输出结果:[1,4,7]
一般方法取 1,5,9
lst = [[1,2,3],[4,5,6],[7,8,9]]
new_lst = []
for i in range(len(lst)):
ret = lst[i][i]
new_lst.append(ret)
print(new_lst)
输出结果:[1,5,9]
列表推导式:
lst = [[1,2,3],[4,5,6],[7,8,9]]
new_lst = [lst[i][i]for i in range(len(lst))]
print(new_lst)
输出结果:[1,5,9]
二.字典推导式:
1.格式:
变量名 = {表达式 for 临时变量 可迭代内容}
2.练习:
将字典中的key 和value 进行对换
一般方式:
dic = {'k1':20,'k2':30}
new_dic = {}
for key,value in dic.items():
new_dic[value] =key
print(new_dic)
输出结果: {20: ‘k1’, 30: ‘k2’}
字典推导式:
dic = {'k1':20,'k2':30}
new_dic ={value:key for key,value in dic.items()}
print(new_dic)
输出结果: {20: ‘k1’, 30: ‘k2’}
三.集合推导式:
集合推导式跟列表推导式非常相似,唯一区别在于用{}代替[]
练习:
# 计算列表中 每个值得平方,自动去重
lst = [-2,3,-3,5]
set1 = {i**2 for i in lst}
print(set1)
输出结果:{4,9,25}
文章由思创斯整理,转载请注明出处:https://ispacesoft.com/118734.html