高级特性


*一行代码能解决的问题 , 绝不用五行代码 . 代码越少 , 开发效率越高

切片

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

你可能感兴趣的:(高级特性)