Python 列表解析

列表解析的特点就是速度快,形式简介。

列表解析的形式 [expression + for + if]
其中 for 可以是多个;if部分可以没有,即使有,千万不要加else部分)

  1. 例1
    给定一个列表arr = [1,2,3,4,5,6,7,8], 把小于5的所有数字放到列表left,其余的放到列表right(快速排序算法用的到)
left,right = [] ,[]
[left.append(i) if i <5 else right.append(i) for i in arr]
  • 注: left.append(i) if i <5 else right.append(i) 是Python的三项表达式,所以上例中的列表解析是用的
    expression + for 的形式
  1. 例2
    给定一个列表arr = [1,2,3,4,5,6,7,8],把其中偶数元素提取出来。
[i for i in arr if i%2==0]
  • 注: 这个例子采用的是 expression + for + if 的形式。
[(i,j) for i in range(3) for j in range(3)]
  • 注: 这个例子采用的是 expression + for + for 的形式,也就是开头说的,for可以有多个,但不建议超过三个。

不要出现 expression + for + if + else的形式, 最后的if 是不能接else的

你可能感兴趣的:(Python 列表解析)