美文网首页
python list倒序输出中的一些问题

python list倒序输出中的一些问题

作者: dpengwang | 来源:发表于2018-05-18 16:15 被阅读0次

    我们可以使用Python的切片操作来完成list的倒序操作,比如:

    a=['a','b','c','d','e','f']
    print(a[ : :-1])
    

    可以得到如下结果:

    ['f', 'e', 'd', 'c', 'b', 'a']
    

    下面来看看如下操作:
    (1)

    a=['a','b','c','d','e','f']
    print(a[ 4: :-1])
    

    结果:

    ['e', 'd', 'c', 'b', 'a']
    

    (2)

    a=['a','b','c','d','e','f']
    print(a[ 4: 0:-1])
    

    结果

    ['e', 'd', 'c', 'b']
    

    (3)想在不省略第二个参数的情况下,把e之前的元素都输出:

    a=['a','b','c','d','e','f']
    print(a[4: -1:-1])
    
    

    结果却是

    []
    

    这是什么原因呢,

    现在来讲一下有关list切片时,步长为负时要注意的问题:

    当我们使用list的三元组形式[a​: b:​c]进行切片时,系统遵行以下规则:

    1.首先系统检查c,默认值为+1。c的值决定是正序还是逆序

    2.接着检查a,当c为正值或者省略时,a的默认值为0;如果c的负值时,a的默认值是-1

    3.最后检查b,当c为正值或者默认值时,b的默认值是len;当c的值是负时,b的默认值是-(len+1)

    所以我们再看看以下情况:

    1. a[4: -1:-1]相当于由a[4]--a[-1-1]:相当于从第四个元素到第四个元素逆序输出,所以为空值

    2. a[ : -1:-1]相当于a[len-1:len-1:-1],所以输出的也是空

    3. 如果想通过修改第二个参数来使得list中的第一个元素被输出出来,则第一个元素可以表示为-(len+1),如:

    eg1

    a=['a','b','c','d','e','f']
    print(a[-2:-7:-1])
    
    ['e', 'd', 'c', 'b', 'a']
    

    想通过a[5:b:-1] 的形式把前五个字符都输出来好像是不可实现的,(b=-1输出[])

    当我们使用切片的时候,如果ab参数都不省略的话,尽量避免ab符号不同

    相关文章

      网友评论

          本文标题:python list倒序输出中的一些问题

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