• Python教程(2.6)——list和tuple简介


    Python中内置的类型有list和tuple。

    List

    list类似于C/C++的数组,可以存储多个数字。例如你可能会需要存储一个班里所有人的名字。这时就可以用到list。list中存储的数据叫做元素(element)。

    创建list

    在Python中,使用[...]表示list:

    >>> names = ['Amy', 'Bob', 'Charles']

    names是一个list类型的变量,里面有'Amy'、'Bob'和'Charles'三个元素。

    可以用[]表示一个空list:

    >>> names = []

    注意:

    1. []里的元素(如果有两个即以上)需要用逗号(,)分隔。

    2. list中的元素类型可以不同:

    >>> L = [123, False, 'spam']

    访问list中的元素

    像字符串一样,使用l[index]获取l(类型为list)的索引为index的元素:

    >>> names[0]
    'Amy'
    >>> names[1]
    'Bob'
    >>> names[2]
    'Charles'

    也可以使用负索引,具体不细说了,上一章已经讲过。

    设置list的元素

    要设置list索引为index的元素,需要先拿到,然后直接赋值即可:

    >>> names = ['Amy', 'Bob', 'Charles']
    >>> names[0] = 'Tom'
    >>> names
    ['Tom', 'Bob', 'Charles']

    获取list长度

    像字符串一样,使用len()获取list长度:

    >>> len(names)
    3

    []的长度为0:

    >>> len([])
    0
    >>> names = []
    >>> len(names)
    0

    向list追加元素

    list是Python的对象,在对象中有一个叫做“方法”的概念,“方法”就是指对象的函数。list对象有append()方法,可以向list追加元素:

    >>> names.append('Donald')
    >>> names
    ['Amy', 'Bob', 'Charles', 'Donald']

    删除list元素

    List对象有pop()方法,可以删除指定位置上的元素:

    >>> names = ['Amy', 'Bob', 'Charles']
    >>> names.pop(1)
    ['Amy', 'Charles']
    >>> names.pop()
    ['Amy']

    pop(index)删除索引为index的元素,pop()删除最后一个元素。注意pop()方法返回删除相应元素后的list,这就是为什么l.pop()和l.pop(index)会显示结果。

    清空list

    清空list很简单,只要设为[]就好了:

    >>> names = []
    >>> names
    []

    list嵌套

    前面说过,list的每个元素可以不一样。list甚至可以包含list:

    >>> positions = [
    ...     [0, 0, 0],
    ...     [0, 1, 0],
    ...     [2, 1, 5]
    ... ]
    >>> positions
    [[0, 0, 0], [0, 1, 0], [2, 1, 5]]

    在这个例子中,我们获取positions中的元素,元素类型也是list:

    >>> positions[0]
    [0, 0, 0]
    >>> positions[1]
    [0, 1, 0]
    >>> positions[2]
    [2, 1, 5]

    如果还要获取以上list中的元素呢?假设要获取positions[0]的第1个元素,一般的list我们直接使用[0]来获取第一个元素,对吧?这里也一样,直接把[0]加在positions[0]后面即可:

    >>> positions[0][0]
    0

    其它数也是一样的:

    >>> positions[1][1]
    1
    >>> positions[2][0]
    2

    Tuple简介

    Python还支持一种叫做tuple的数据类型。Tuple和list类似,但是不可变(immutable)的。

    创建tuple

    使用(...)表示tuple:

    >>> cubes = (1, 8, 27, 64)

    空tuple可以用()表示:

    >>> cubes = ()

    但是如果是一个元素的tuple呢?好像是这样写的:

    >>> cubes = (1)

    但是现在检查cubes会发现:

    >>> cubes
    1

    cubes是个int!这里的(1)被看作整数1了。

    因此,需要在()中加一个逗号(,),表示这是一个tuple:

    >>> cubes = (1,)
    >>> cubes
    (1,)

    Python在显示一个元素的tuple时,也会加一个逗号。

    其他操作

    除不能设置、追加、删除元素外,tuple的操作和list相似。

    注意

    虽然说tuple是不可变的,但是也有一些奇怪的地方。下面是一个含有list的tuple:

    >>> t = (1, 2, [1, 2])

    有下列语句:

    >>> t[2][0] = 10
    >>> t
    (1, 2, [10, 2])

    很奇怪吧,tuple的元素怎么被改变了?!

    答案是,t被创建时,里面的元素分别是1、2、[1, 2]。后来我们把[1, 2]的内容改成了[10, 2],看起来t的元素变了,但这里的“不变”指指向不变,虽然t[2]的内容改变了,但是一直是同一个list。

    但是像下面这样就不行了:

    >>> t[2] = 10
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment

    (此文未完,原文链接:http://www.cnblogs.com/collectionne/p/6878075.html

  • 相关阅读:
    php注释规范
    Jquery元素选取、常用方法
    pdo 添加数据
    pdo 访问数据库
    session / cookie 区别与应用
    注册审核
    分页 --条件查询再分页
    Python 第二十九章 socket通信
    Python 第二十八章 网络初识+五层协议+三次握手四次挥手
    Python 第二十六章 面向对象 元类+反射+双下方法
  • 原文地址:https://www.cnblogs.com/collectionne/p/6878075.html
Copyright © 2020-2023  润新知