美文网首页程序员
Python学习笔记--list与tuple

Python学习笔记--list与tuple

作者: 琉璃飞瑾 | 来源:发表于2017-04-23 01:28 被阅读0次
    Python学习笔记--list与tuple


    1.使用[ ]将list的所有元素都括起来,就是一个list对象

    >>> l=['Liu',18,True]
    >>> print l
    ['Liu', 18, True]

    python是动态语言,所以list里可以放不同类型的数据

    2.一个元素也没有的list,就是空list

    >>> j = []
    >>> type(j)
    >>> print j
    []

    3.根据下标访问list

    >>> print l
    ['Liu', 18, True]
    >>> l[0]
    'Liu'

    4.倒序访问

    >>> print l
    ['Liu', 18, True]
    >>> l[-1]
    True
    >>> l[-2]
    18
    >>> l[-3]
    'Liu'

    倒序下标从-1开始

    5.添加元素

    方法一:append()

    >>> print l
    ['Liu', 18, True]
    >>> l.append('Wen')
    >>> print l
    ['Liu', 18, True, 'Wen']

    方法二:insert()

    >>> print l
    ['Liu', 18, True, 'Wen']
    >>> l.insert(1,'insert')
    >>> print l
    ['Liu', 'insert', 18, True, 'Wen']

    第一种为末尾插入,第二种为任意位置插入,比第一种方法灵活。

    6.删除元素

    方法:pop()

    返回:被删除的元素

    (1)情况一(带下标):

    >>> print l
    ['Liu', 'insert', 18, True, 'Wen']
    >>> l.pop(3)
    True
    >>> print l
    ['Liu', 'insert', 18, 'Wen']

    (2)情况二(不带下标):

    >>> print l
    ['Liu', 'insert', 18, 'Wen']
    >>> l.pop()
    'Wen'
    >>> print l
    ['Liu', 'insert', 18]

    不带下标的pop方法,默认删除最后一个元素。

    7.替换元素

    >>> print l
    ['Liu', 'insert', 18]
    >>> l[-1]=19
    >>> print l
    ['Liu', 'insert', 19]

    8.特殊的有序list—tuple(元组)

    (1)使用( )将元素括起来

    (2)一旦创建完毕,就无法修改。

    所以tuple没有append()、insert()和pop()

    (3)通过下标索引元素,但是不能再赋值为别的元素

    (4)包含 0 个元素的 tuple,也就是空tuple,直接用 ()

    包含1个元素的 tuple时不能按照如下的方法创建:

    >>> t = (1)
    >>> print t
    1
    >>> type(t)
    <type 'int'>

    析:

    因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。

    解决:

    Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:

    >>> t = (1,)
    >>> print t
    (1,)
    >>> type(t)
    <type 'tuple'>

    9.'可变'的tuple

    例子:

    >>> t = ('a', 'b', ['A', 'B'])
    >>> L = t[2]
    >>> L[0] = 'X'
    >>> L[1] = 'Y'
    >>> print t
    ('a', 'b', ['X', 'Y'])

    不是说tuple一旦定义后就不能改变了吗?怎么现在又可以改变了呢?

    分析:

    当我们定义tuple的时候:

    Python学习笔记--list与tuple

    当我们把list的元素’A’和’B’修改为’X’和’Y’后,tuple变为:

    图片2

    tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

    10.切片

    格式:list[x:y:z]

    解析:

    x表示切片开始的位置
    y表示切片到哪里结束
    z表示切片间隔数

    负数用在从序列尾开始计算的位置

    切片的操作类型:

    con[start_index]:返回索引值为start_index的对象。start_index为 -len(con)到len(con)-1之间任意整数。

    con[start_index: end_index]:返回索引值为start_index到end_index-1之间的连续对象。

    con[start_index: end_index : step]:返回索引值为start_index到end_index-1之间,并且索引值与start_index之差可以被step整除的连续对象。

    con[start_index: ]:缺省end_index,表示从start_index开始到序列中最后一个对象。

    con[: end_index]:缺省start_index,表示从序列中第一个对象到end_index-1之间的片段。

    con[:]:缺省start_index和end_index,表示从第一个对象到最后一个对象的完整片段。

    con[::step]:缺省start_index和end_index,表示对整个序列按照索引可以被step整除的规则取值。

    举例:

    str[6:] #截取第七个字符到结尾

    str[:] #截取字符串的全部字符

    str[0:3] #截取第一位到第三位的字符

    str[:-3] #截取从头开始到倒数第三个字符之前

    str[2] #截取第三个字符

    str[-1] #截取倒数第一个字符

    str[::-1] #创造一个与原字符串顺序相反的字符串

    str[-3:-1] #截取倒数第三位与倒数第一位之前的字符

    str[-3:] #截取倒数第三位到结

    str[:-5:-3] #逆序截取

    相关文章

      网友评论

        本文标题:Python学习笔记--list与tuple

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