1 Python自学 - 解析入门(一种特殊循环)
本文介绍解析
的基础知识,以便读者对解析
有一个基本的理解,解析可以理解为:对方没有说话,默默的丢过来一个压缩包。
1.1 列表的解析
-
示例1:基本用法
pyl = [x for x in range(0,10,2)] #使用range时指定步长 print(l) #输出:[0, 2, 4, 6, 8]
-
示例2:带条件的用法
pyl = [x for x in range(0,10) if x % 2 == 1] #求奇数队列 print(l) #输出:[1, 3, 5, 7, 9]
-
示例3:对成员进行计算,如求平方根
pyfrom math import * l = [sqrt(x) for x in range(0,5)] #成员求平方根 print(l) #输出:[0.0, 1.0, 1.4142135623730951, 1.7320508075688772, 2.0]
1.2 其他类型的解析
-
示例4:解析其他可迭代对象
py#场景1:解析列表 l1 = [1,2,3] l2 = [x for x in l1] print(l2) #输出:[1, 2, 3] #场景2:解析字符串 str1 = 'str' l3 = [x for x in str1] print(l3) #输出:['s', 't', 'r'] #场景3:解析元组 t1 = (1,2,3) l4 = [x for x in t1] print(l4) #输出:[1, 2, 3] #场景4:解析字典 d1 = {'x':1,'y':2} l5 = [x for x in d1] print(l5) #输出:['x', 'y'] d5 = {v:k for k,v in d1.items()} #将字典键值倒换 print(d5) #输出:{1: 'x', 2: 'y'} #场景5:解析集合 s1 = {1,2,3} l6 = [x for x in s1] print(l6) #输出:[1, 2, 3]
-
示例5:使用解析生成一个二维列表
pyl1 = [[i+ j * 5 for i in range(5)] for j in range(3) ] print(l1) #输出:[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]
-
示例6:成员取值放在
for
前的场景pyl = [12, 23, 35, 6, 7] l1 = [ '成年' if x >= 18 else '未成年' for x in l] print(l1) #输出:['未成年', '成年', '成年', '未成年', '未成年']
🕮说明 :
使用解析填充列表比使用循环要节省很多时间。
作者声明:本文用于记录和分享作者的学习心得,水平有限,难免存在表达错误,欢迎交流和指教!
Copyright © 2022~2024 All rights reserved.