zoukankan      html  css  js  c++  java
  • 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

      元组

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

     
     
  • 相关阅读:
    349. Intersection of Two Arrays
    1342. Reduce Array Size to The Half
    Telegram 汉化教程【转】
    jQuery 事件
    jQuery 事件
    jQuery 遍历
    jQuery 遍历
    CocosCreator教程(入门篇)【转】
    JavaScript shift() 方法使用【转】
    jQuery中动画函数animate的用法详解【转】
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3118982.html
Copyright © 2011-2022 走看看