*一行代码能解决的问题 , 绝不用五行代码 . 代码越少 , 开发效率越高
切片
L = ['Michael','Sarah','Tracy','Bob','Jack']
L[0:3]
['Michael' , 'Sarah' , Tracy]
L[0:3] 表示 , 从索引0开始取 , 直到索引3为止 , 但不包括索引3 , 即索引 0 , 1, 2 , 正好3个元素
如果第一个索引是0 , 还可以省略 :
L[:3]
['Michael' , 'Sarah' , 'Tracy']
可以从1开始 , 提取两个元素出来
L[1:3]
['Sarah' , 'Tracy']
同样支持倒数切片 , 倒数第一个元素索引是-1:
L[-2:]
['Bob' , 'Jack']
L[-2:-1]
['Bob']
迭代
我们可以通过 for 循环来遍历 list 或 tuple , 通常语法为 for ...(存入目标) in ...(需要迭代的数组)
L = [1,2,3,4,5]
for num in L :
print (L)
1
2
3
4
5
小结: 任何可迭代对象都可以作用于for循环 , 包括我们自定义的数据类型 , 只要符合迭代条件 , 就可以使用for循环
列表生成式
可以用来创建list的生成式
list (range (1 , 11))
[1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
x * x for x in range(1,11)
[1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 , 100]
套用两层生成全排列 :
m + n for m in "ABC" for n in "XYZ"
["AX" , "AY" , "AZ" , "BX" , "BY" , "BZ" , "CX" , "CY" , "CZ"]
生成器
一边循环一边计算的机制 , 称为生成器 generator