zoukankan      html  css  js  c++  java
  • Python list 和 tuple 使用小记


    list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。

    1.内置数据类型,列表List

    >>> appleVersion = ['apple1','apple2','apple3']
    >>> appleVersion
    ['apple1', 'apple2', 'apple3']
    
    >>> len(appleVersion)
    3
    
    >>> appleVersion[0]
    'apple1'
    
    >>> appleVersion[1]
    'apple2'
    
    >>> appleVersion[2]
    'apple3'
    
    >>> appleVersion[3]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list index out of rang
    

    倒序打印

    >>> appleVersion[-1]
    'apple3'
    
    >>> appleVersion[-2]
    'apple2'
    
    >>> appleVersion[-3]
    'apple1'
    
    >>> appleVersion[-4]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list index out of range
    

      

    新增

    >>> appleVersion.append('orange')
    >>> appleVersion
    ['apple1', 'apple2', 'apple3', 'orange']
    

      
    插入

    >>> appleVersion.insert(1,'banana')
    >>> appleVersion
    ['apple1', 'banana', 'apple2', 'apple3', 'orange']
    

     
    删除末尾/删除索引i

    >>> appleVersion.pop()
    'orange'
    >>> appleVersion
    ['apple1', 'banana', 'apple2', 'apple3']
    >>> appleVersion.pop(1)
    'banana'
    >>> appleVersion
    ['apple1', 'apple2', 'apple3']
    

     
    赋值替换

    >>> appleVersion[1]='orange'
    >>> appleVersion
    ['apple1', 'orange', 'apple3']
    

      
    List嵌套

    >>> orange=['orange1','orange2']
    >>> apple=['apple1',123,orange,True]
    >>> apple
    ['apple1', 123, ['orange1', 'orange2'], True]
    >>> len(apple)
    4
    

      


    2. tuple和list非常类似,但是tuple一旦初始化就不能修改,不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
    tuple的陷阱:

    当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来

    >>> lemon=('lemon1','lemon2','lemon3')
    >>> lemon
    ('lemon1', 'lemon2', 'lemon3')
    
    >>> lemon1=()
    >>> lemon1
    ()
    数字1
    >>> lemon2=(1)
    >>> lemon2
    1
    一个原素
    >>> lemon3=(1,)
    >>> lemon3
    (1,)
    
    >>> lemon4=('a','b',['A','B'])
    >>> lemon4[2][0]='X'
    >>> lemon4[2][1]='Y'
    >>> lemon4
    ('a', 'b', ['X', 'Y'])
    

      
    表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。
    tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
    理解了“指向不变”后,要创建一个内容也不变的tuple,那就必须保证tuple的每一个元素本身也不能变

  • 相关阅读:
    myeclipse安装
    win下Velocity安装和试用
    win下Java环境安装
    零基础编程指南(By Turtle)
    快速将某个文件夹下的所有文件中的匹配数据替换
    补丁数组(增删改查都较快的数组)
    addView的误区
    NOIP普及组:买铅笔
    由抽奖软件想到的随机算法总结
    Codeforces Round #220 (Div. 2) 解题报告
  • 原文地址:https://www.cnblogs.com/AryaZ/p/6505350.html
Copyright © 2011-2022 走看看