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

Python教程(2.6)——list和tuple简介的更多相关文章

  1. 廖老师的Python教程——Python简介

    一直想了解下Python,今儿在外面办事排队的时候,打开了廖老师的官网,找到了Python教程.虽然只是一篇关于Python的简介,但是通过将Python的特性与C进行对比,很生动地归纳了Python ...

  2. 《简明python教程》笔记一

    读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info  安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...

  3. python入门灵魂5问--python学习路线,python教程,python学哪些,python怎么学,python学到什么程度

    一.python入门简介 对于刚接触python编程或者想学习python自动化的人来说,基本都会有以下python入门灵魂5问--python学习路线,python教程,python学哪些,pyth ...

  4. Python教程(0)——介绍

    What's Python? Python是一种编程语言,由荷兰人Guido van Rossum于1989年,为打发无聊的圣诞节而开发的. Python的优点是语法简洁,代码量比C/C++.Java ...

  5. 笔记|《简明Python教程》:编程小白的第一本python入门书

    <简明Python教程>这本书是初级的Python入门教材,初级内容基本覆盖,对高级内容没有做深入纠结.适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅. 下面是我根据各个 ...

  6. 学习笔记《简明python教程》

    学习笔记<简明python教程> 体会:言简意赅,很适合新手入门 2018年3月14日21:45:59 1.global 语句 在不使用 global 语句的情况下,不可能为一个定义于函数 ...

  7. 【转】简明 Python 教程

    原文网址:http://woodpecker.org.cn/abyteofpython_cn/chinese/ 简明 Python 教程Swaroop, C. H. 著沈洁元  译www.byteof ...

  8. 『Python基础-9』元祖 (tuple)

    『Python基础-9』元祖 (tuple) 目录: 元祖的基本概念 创建元祖 将列表转化为元组 查询元组 更新元组 删除元组 1. 元祖的基本概念 元祖可以理解为,不可变的列表 元祖使用小括号括起所 ...

  9. 廖雪峰老师Python教程读后笔记

    廖老师网站:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 花几天时间看了廖老师的 ...

随机推荐

  1. 【Spark2.0源码学习】-2.一切从脚本说起

    从脚本说起      在看源码之前,我们一般会看相关脚本了解其初始化信息以及Bootstrap类,Spark也不例外,而Spark我们启动三端使用的脚本如下: %SPARK_HOME%/sbin/st ...

  2. 【转载】 stm32之PWM

    发现这位博主的博客被大量的转发,我也转载一篇,谁叫人家写的好呢. 原文地址:http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html 脉冲宽度调制(PW ...

  3. 工资不高也要给自己放假 这几款APP估计你用得上

    我是这样的一个人,我宁愿工资不高,只要给我足够的假期,那我就满足了.都说上班就是为了赚钱,但如果身体不好,赚再多的钱也是无福享受,所以建议各位,有机会的话,一定要抽出时间去旅游,去放松. 现在我们外出 ...

  4. 【代码学习】GD库中图片缩印

    bool imagecopyresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src ...

  5. [luoguP2912] [USACO08OCT]牧场散步Pasture Walking(lca)

    传送门 水题. 直接倍增求lca. x到y的距离为dis[x] + dis[y] - 2 * dis[lca(x, y)] ——代码 #include <cstdio> #include ...

  6. Bootstrap Flat UI的select下拉框显示不出来 问题解决

    Bootstrap Flat UI的select下拉框显示不出来?看这里,恰巧今天我也遇到了这个问题: 点击Messages后并没有出现下拉列表,然而官网的index.html却能显示出来. 经过一番 ...

  7. 分别用css3、JS实现图片简单的无缝轮播功效

    本文主要介绍分别使用CSS3.JS实现图片简单无缝轮播功效: 一.使用CSS3实现:利用animation属性 (实现一张一张的轮播,肉眼只看见一张图片) HTML部分比较简单,两个div下包着几个i ...

  8. ThinkPHP3.2——基础

    1.1.获取ThinkPHP 3.2 获取ThinkPHP的方式很多,官方网站(http://thinkphp.cn)是最好的下载和文档获取来源. 官网提供了稳定版本的下载:http://thinkp ...

  9. Tomcat的一些实际操作

    1:tomcat7开启远程debug模式: ./catalina.sh jpda start 2:tomcat支持URL中文,解决tomcat get请求乱码问题(在TOMCAT_HOME/conf/ ...

  10. 浅析SQL Server数据库中的伪列以及伪列的含义

    SQL Server中的伪列 下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值:对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个 ...