zoukankan      html  css  js  c++  java
  • 从0开始的Python学习003序列

    sequence 序列

    序列是一组有顺序数据的集合。不知道怎么说明更贴切,因为python的创建变量是不用定义类型,所以在序列中(因为有序我先把它看作是一个有序数组)的元素也不会被类型限制。

    序列可以包含一个或多个元素,也可以没有任何元素(空序列)。

    当然一个序列也是一个元素,所以在序列中也可以包含多个序列。

    序列有两种

    tuple(定值表; 也有翻译为元组) 和 list (表)。

    a1 = (1,2,3,4,'5',True)
    
    a2 = [6,'7',False]
    
    print(a1,type(a1))
    
    print(a2,type(a2))

    tuple()和list[]的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更

    从含义可以看出和数学的开区间,闭区间正好相反。所以这个地方容易记错。

    a1 = (1,2,3,4,'5',True)
    
    a2 = [6,'7',False]
    
    print(a1,type(a1))
    
    print(a2,type(a2))
    
    
    #一个序列作为另一个序列的元素
    a3 = [1,[2,3]]
    
    #空序列
    a4 = []
    
    print(a3,type(a3))
    
    print(a4)

    序列元素的引用

    这点和数组有点像了,我们可以通过下标(从0开始)去获取元素。

     

    a1 = (1,2,3,4,'5',True)
    
    a2 = [6,'7',False]
    
    print(a1,type(a1))
    
    print(a2,type(a2))
    
    
    #一个序列作为另一个序列的元素
    a3 = [1,[2,3]]
    
    #空序列
    a4 = []
    
    print(a3,type(a3))
    
    print(a4)
    
    
    print('============分割线=============')
    
    print('数组[下标]')
    
    print(a1[0])
    
    print(a3[1])
    
    #元素的变更
    
    a2[0] = 9
    
    print(a2)
    
    #如果是tuple进行修改的时候会报错
    a1[0] = 9
    
    print (a1)

     

     

    其他引用方式

    范围引用: 基本样式[下限:上限:步长]

    print(a1[:5])             # 从开始到下标4 (下标5的元素 不包括在内)

    print(a1[2:])             # 从下标2到最后

    print(a1[0:5:2])          # 从下标0到下标4 (下标5不包括在内),每隔2取一个元素 (下标为0,2,4的元素)

    print(a1[2:0:-1])         # 从下标2到下标1

    从上面可以看到,在范围引用的时候,如果写明上限,那么这个上限本身不包括在内。

    尾部元素引用

    print(a1[-1])             # 序列最后一个元素

    print(a1[-3])             # 序列倒数第三个元素

    同样,如果a1[0:-1], 那么最后一个元素不会被引用 (再一次,不包括上限元素本身)

    取出的序列中的元素可以继续被引用:

    Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license()" for more information.
    >>> print(1)
    1
    >>> 
    ==================== RESTART: E:/python/studyPython004.py ====================
    5
    >>> 
    ==================== RESTART: E:/python/studyPython004.py ====================
    (1, 2, 3, 4, '5', True) <class 'tuple'>
    [6, '7', False] <class 'list'>
    >>> 
    ==================== RESTART: E:/python/studyPython004.py ====================
    (1, 2, 3, 4, '5', True) <class 'tuple'>
    [6, '7', False] <class 'list'>
    [1, [2, 3]] <class 'list'>
    []
    >>> 
    ==================== RESTART: E:/python/studyPython004.py ====================
    (1, 2, 3, 4, '5', True) <class 'tuple'>
    [6, '7', False] <class 'list'>
    [1, [2, 3]] <class 'list'>
    []
    ============分割线=============
    1
    [2, 3]
    Traceback (most recent call last):
      File "E:/python/studyPython004.py", line 29, in <module>
        a1[0] = 9
    TypeError: 'tuple' object does not support item assignment
    >>> 
    ==================== RESTART: E:/python/studyPython004.py ====================
    (1, 2, 3, 4, '5', True) <class 'tuple'>
    [6, '7', False] <class 'list'>
    [1, [2, 3]] <class 'list'>
    []
    ============分割线=============
    数组[下标]
    1
    [2, 3]
    [9, '7', False]
    Traceback (most recent call last):
      File "E:/python/studyPython004.py", line 36, in <module>
        a1[0] = 9
    TypeError: 'tuple' object does not support item assignment
    >>> 
    ==================== RESTART: E:/python/studyPython004.py ====================
    (1, 2, 3, 4, '5', True) <class 'tuple'>
    [6, '7', False] <class 'list'>
    [1, [2, 3]] <class 'list'>
    []
    ============分割线=============
    数组[下标]
    1
    [2, 3]
    [9, '7', False]
    3
    >>> 

    字符串是tuple

    字符串是一种特殊的元组,因此可以执行元组的相关操作。

    str = 'abcdef'

    print(str[2:4])

    这也就是它不能修改的原因

  • 相关阅读:
    jQuary学习の三の效果展示
    jQuary学习の二の语法
    jQuary学习の一の初期准备
    js备战春招の四のjs函数
    javascript JSON
    js备战春招の四の表单
    js备战春招の四の严格模式
    290. Word Pattern--Easy
    546. Remove Boxes--Hard
    牛客网-华为-2020届校园招聘上机考试-3
  • 原文地址:https://www.cnblogs.com/liuhappy/p/10572871.html
Copyright © 2011-2022 走看看