• Python学习之路(三):序列


    Python学习之路(三):序列

    1. 我坚信初学者更加明白初学者学习的困难在哪里。
    2. 我坚信最好的学习资料是自己亲手记录。
    3. 我坚信最好的学习方法是自己动手。
    4. 我坚信最好的检验方式就是能把自己所学到的东西转手教给别人。
    5. -----作者: 高鹏

      教为学:Python学习之路(三):序列

      概论

      Python的序列总共有六种内建序列:

      列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。

      我们主要讲的是列表和元组。这两者最大的区别是列表是可以修改的,元组是不可以被修改的。

      序列的特征就是会为每一个元素分配一个序号,从零开始是第一个,反过来从最后一个开始是-1…-n。

      序列的通用操作

      索引

      代码:

      1. #coding:utf-8
      2. months1=["1","2","3","4","5","6","7","8","9","10","11","12"]
      3. mouths2=("1","2","3","4","5","6","7","8","9","10","11","12")
      4. print months1
      5. print mouths2
      6.  
      7. print type(months1)
      8. print type(mouths2)
      9.  
      10. print months1[1]
      11. print months1[-1]

      结果:

      1. ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
      2. ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12')
      3. <type 'list'>
      4. <type 'tuple'>
      5. 2
      6. 12

      所谓索引,有过其他语言编程经验的都知道,有个叫数组下标的东西,不过,索引更强大,可以反向,而其他语言一般都不可以。

      当然索引也是序列的主要特征。

      如果要在形式上区分这两者,中括号包围的是列表,小括号包围的是元组。

      当然在这里我们还要还要介绍一个非常强大的命令dir:

      源码:

      1. months1=["1","2","3","4","5","6","7","8","9","10","11","12"]
      2. mouths2=("1","2","3","4","5","6","7","8","9","10","11","12")
      3. print dir(months1)
      4. print dir(mouths2)

      结果:

      1. ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
      2. ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

      这里是列出该变量所能用的所有方法。

      分片

      分片和索引的区别在于索引是用来访问一个元素,而分片是用来访问一组元素。

      1. months=["1","2","3","4","5","6","7","8","9","10","11","12"]
      2. #从序号3到序号5
      3. print months[3:6]
      4. #从序号0到序号3
      5. print months[:3]
      6. print months[0:3]
      7. #加入步长
      8. print months[::1]
      9. print months[::2]
      10. print months[::3]

      结果:

      1. ['4', '5', '6']
      2. ['1', '2', '3']
      3. ['1', '2', '3']
      4. ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
      5. ['1', '3', '5', '7', '9', '11']
      6. ['1', '4', '7', '10']

      分片这东西听起来很神奇,做起很简单。

      两个冒号隔离三个部分,起始位置,结束位置+1,步划

      算数运算

      源码

      1. a=[1,2,3]
      2. b=[4,5,6]
      3. print a+b
      4. print a*5

      结果:

      1. [1, 2, 3, 4, 5, 6]
      2. [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

      理解起来并不困难。

      常用函数

      1. a=[1,2,3]
      2. print len(a)
      3. print max(a)
      4. print min(a)

      结果:

      1. 3
      2. 3
      3. 1

      列表

      1. a=[1,2,3]
      2. a.append(4)
      3. print a
      4. a=[1,1,1,2,2,3]
      5. print a.count(1)
      6. print a.count(2)
      7. print a.count(3)
      8. a=[1,2,3]
      9. b=[4,5,6]
      10. print a+b
      11. a.extend(b)
      12. print a
      13. print a.index(4)
      14. a.insert(3,'aaaa')
      15. print a
      16. print a.pop()
      17. print a
      18. print a.remove('aaaa')
      19. print a
      20. print a.reverse()
      21. print a
      22. a=[3,312,342,23,6,9]
      23. print a
      24. a.sort()
      25. print a

      结果:

      1. [1, 2, 3, 4]
      2. 3
      3. 2
      4. 1
      5. [1, 2, 3, 4, 5, 6]
      6. [1, 2, 3, 4, 5, 6]
      7. 3
      8. [1, 2, 3, 'aaaa', 4, 5, 6]
      9. 6
      10. [1, 2, 3, 'aaaa', 4, 5]
      11. None
      12. [1, 2, 3, 4, 5]
      13. None
      14. [5, 4, 3, 2, 1]
      15. [3, 312, 342, 23, 6, 9]
      16. [3, 6, 9, 23, 312, 342]

      对于这一大对的方法,除了我们上面所说的dir查看有什么方法之外,还有一个方法可以用,查看方法的用法。

      代码

      1. a=[1,2,3]
      2. help(a.insert)

      结果如下:

      1. insert(...)
      2.     L.insert(index, object) -- insert object before index

      元组

      元组本质上是一个去除修改内容的列表,一切可以修改列表内容的函数都不可用。

     
     
  • 相关阅读:
    还不懂mock测试?一篇文章带你熟悉mock
    android studio历史版本
    文档04_webfrom
    LeetCode 1763. Longest Nice Substring
    LeetCode 2006. Count Number of Pairs With Absolute Difference K
    LeetCode 539. Minimum Time Difference
    LeetCode 2000. Reverse Prefix of Word
    LeetCode 747. Largest Number At Least Twice of Others
    行为面试技巧之 STAR 法则 All In One
    LeetCode 字符串相乘算法题解 All In One
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3118982.html
Copyright © 2020-2023  润新知