2020-08-30
python学习
00
请注意,本文编写于 1307 天前,最后修改于 398 天前,其中某些信息可能已经过时。

目录

1,基本语法
2,相关习题
1,基本语法

列表解析式(list comprehension) 语法: [返回值 for 元素 in 可迭代对象 if 条件] 返回一个新的列表

l=[(i+1)**2 for i in range(10)] # 最外层的括号表示最后展示的数据为一个列表所以用[] 标记。 # 解析式前部分为生成元素部分,后半部分为迭代。 # 不能使用else子句 print(l) print(type(l))
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] <class 'list'>

使用列表解析式可以大幅提高程序的效率。

###复杂的列表解析式 #写法1: l1 = [(i,j) for i in range(7) if i>4 for j in range(20,25) if j > 23] #写法2: l2 = [(i,j) for i in range(7) for j in range(20,25) if i>4 if j>23] #写法3: l3 = [(i,j) for i in range(7) for j in range(20,25) if i>4 and j> 23] print(l1,l2,l3) #第三种写法最优。
[(5, 24), (6, 24)] [(5, 24), (6, 24)] [(5, 24), (6, 24)]
2,相关习题
#返回1-10平方的列表 l4 = [i**2 for i in range(1,11)] print(l4)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
#有一个列表lst=[1,4,9,16,2,5,10,15],生产一个新的列表,求相邻两项的和。 lst = [1,4,9,16,2,5,10,15] l5 = [lst[i]+lst[i+1] for i in range(len(lst)-1)] print(l5)
[5, 13, 25, 18, 7, 15, 25]
#打印九九乘法表 print('\n'.join([''.join(['%sx%s=%-3s' % (x,y,x*y) for x in range(1,y+1)]) for y in range(1,10)]))
1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

本文作者:mykernel

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!