Python特性Day4

作者: 墨马 | 来源:发表于2019-01-08 23:09 被阅读1次

    切片

    取list或tuple的部分元素非常常见
    eg:取列表的前三个元素

    L =  ['one','two','three','four','five']
    r = []
    n = 3
    for i  in range(n):
      r.append(L[i]) 
    ['one','two','three']
    

    上诉方法虽然可以实现,但是对于经常性的操作,显然比较繁琐,所以Python提供了切片(Slice)操作以简化操作。

    L[0:3]
    ['one','two','three']
    

    L[0:3]表示从索引0开始到3,不包括3,如果从0开始可以省略第一个参数,所有数可以省略第二个参数,也可以从其他索引开始,也可以从后开始,也可以加第三个参数表示每几个数取一个,也可以操作tuple,字符串。

    L = list(range(100))
    #取前十个数
    L[:10]
    [0,1,2,3,4,5,6,7,8,9]
    #后10个数
    L[-10:]
    [90,91,92,93,94,95,96,97,98,99]
    #前11到20共10个数
    L[10:21]
    [11,12,13,14,15,16,17,18,19,20]
    #前10个数每俩个取一个
    L[:10:2]
    [0,2,4,6,8]
    #所有数,每5个取一个
    L[::5]
    [0,5,19,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95]
    #处理tuple
    (1,2,3,4,5)[:3]
    (0,1,2)
    #处理字符串
    'ABCDEFG'[:3]
    'ABC'
    'ABCDEFG'[::2]
    'ACEG'
    

    这样一行代码就可以实现很多循环完成的操作啦。

    迭代

    对于一个list或tuple我们通过for循环来遍历,这种遍历就叫做迭代

    #dict默认迭代key
    for key in dict
    #迭代value
    for value in d.values()
    #迭代key和value
    for k,v in d.items()
    #迭代字符串
    for ch in 'abc':
      print(ch)
    a
    b
    c
    

    判别对象是否可迭代

    from collections import Iterable
    isinstance('abc',Iterable)
    Ture     #字符串可迭代
    isinstance(123,Iterable)
    False   #整数不可迭代
    isinstance([1,2,3],Iterable)
    Ture     #list可迭代
    

    Python内置的enumerate函数可以把list变成索引-元素对所示现同时迭代索引和元素本身

    for i,value in enumerate(['A','B','C']):
      print(i,value)
    0 A
    1 B
    2 C
    

    同时引用俩个变量

    for x,y in[(1,1),(2,4),(3,9)]:
      print(x,y)
    1 1
    2 4
    3 9
    

    列表生成

    #循环
    [x*x for x in range(1,11)]
    [1,4,9,16,25,36,49,64,81,100]
    #判断
    [x*x for x in range(1,11) if x % 2 == 0]
    [4,16,36,64,100]
    #生成全排列
    [m+n for m in 'ABC' for n in 'XYZ']
    ['AX','AY','AZ','BX','BY','BZ','CX','CY','CZ']
    #用dict生成list
    d = {'x':'A','y':'B','z':'C'}
    [k+'='+v for k,v in d.items()]:
    ['y=B','x=C','z=D']
    #将list中变成小写
    L = ['Apple','IBM']
    [s.lower() for s in L]
    ['apple',ibm]
    

    相关文章

      网友评论

        本文标题:Python特性Day4

        本文链接:https://www.haomeiwen.com/subject/rnlbrqtx.html