最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
python下list和tuple用法说明
时间:2015-05-26 编辑:简简单单 来源:一聚教程网
list
Python内置的一种数据类型是列表:list。list是python中的基本数据结构之一,是一种有序的集合,可以随时添加和删除其中的元素。它支持字符,数字,字符串甚至可以在里面包含列表。
比如,列出班里所有同学的名字,就可以用一个list表示:
classmates = ['Joe', 'Bob', 'Tom']
classmates
['Joe', 'Bob', 'Tom']
这里该变量classmates就是一个list。用len()可以获得list元素的个数:
len(classmates)
3
这里用索引来访问list中每一个位置的元素,索引是从0开始的:
classmates[0]
‘Joe’
classmates[1]
‘Bob’
classmates[2]
‘Tom’
classmates[3]
IndexError: list index out of range
因为索引超出了范围时,所以这里会提示出错。
如果要获取最后一个元素,这里还可以用-1做索引,直接获取最后一个元素:
classmates[-1]
‘Tom’
以此类推,可以获取倒数第2个、倒数第3个:
classmates[-2]
‘Bob’
classmates[-3]
‘Joe’
在list中追加元素到末尾:
classmates.append('Jerry')
classmates
['Joe', 'Bob', 'Tom', 'Jerry']
要删除list末尾的元素,可以用pop()。
classmates.pop() (这里括号里面不加任何参数的话默认是删除末尾的元素)
‘Jerry’
classmates
[‘Joe’, ‘Bob’, ‘Tom’,]
要删除指定位置的元素,用pop(i),其中i表示索引位置:
classmates.pop(1)
‘Bob’
classmates
[‘Joe’,‘Tom’]
list元素也可以包含另一个list,比如:
s = [‘python’, ‘java’, [‘asp’, ‘php’], ‘mysql’]
要拿到‘php’的话可以写p[1]或者s[2][1]即可(这里令p=[‘asp’,’php’])
例子
获得list元素的个数:
复制代码 代码如下:
>>> lst=['更新慢','python',5.44,False]
>>> len(lst)
4
引用访问时索引是从0开始,注意不要越界:
复制代码 代码如下:
>>> lst[0]
'更新慢'
>>> lst[1]
'python'
>>> lst[2]
5.44
>>> lst[3]
False
>>> lst[4]
Traceback (most recent call last):
File "
lst[4]
IndexError: list index out of range
用-1做索引,直接获取最后一个元素:
复制代码 代码如下:
>>> lst[-1]
False
>>> lst[-2]
5.44
>>> lst[-3]
'python'
>>> lst[-4]
'更新慢'
>>> lst[-5]
Traceback (most recent call last):
File "
lst[-5]
IndexError: list index out of range
因为list是一个可变的有序表,所以,可以往list末尾追加元素:
复制代码 代码如下:
>>> lst.append('加我一个')
>>> lst
['更新慢', 'python', 5.44, False, '加我一个']
一次追加多个元素:
复制代码 代码如下:
>>> lst.extend(['A','B','C'])
>>> lst
['更新慢', 'python', 5.44, False, '加我一个', 'A', 'B', 'C']
要删除list末尾的元素,用pop()方法:
复制代码 代码如下:
>>> lst.pop()
'C'
>>> lst
['更新慢', 'python', 5.44, False, '加我一个', 'A', 'B']
删除指定位置的元素,用pop(i)方法,其中i是索引位置:
复制代码 代码如下:
>>> lst.pop(0)
'更新慢'
>>> lst
['python', 5.44, False, '加我一个', 'A']
list元素替换,可以直接赋值给对应的索引位置:
复制代码 代码如下:
>>> lst[-1]='100'
>>> lst
['python', 5.44, False, '加我一个', '100']
list元素也可以是另一个list,插入的那个list只算一个元素:
复制代码 代码如下:
>>> lst.append(lst1)
>>> lst
['python', 5.44, False, '加我一个', '100', ['666', 'QWER']]
>>> len(lst)
6
tuple
另一种有序列表叫元组(定值表 ):(tuple一旦初始化就不能修改,比如同样是列出同学的名字:
classmates = (‘Joe’, ‘Bob’, ‘Tom’)
现在,classmates这个tuple不能变了。你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。
因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
要定义一个只有1个元素的tuple,如果你这么定义:
b = (1)
b
1
定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1啦。
所以,只有1个元素的tuple定义时必须加一个逗号来消除歧义:
b = (1,)
b
(1,)
Tuple一旦初始化就不能修改。字符串是一种特殊的元素,因此可以执行元组的相关操作。
复制代码 代码如下:
>>> str='该睡觉了,晚安!'
>>> print (str[:7])
该睡觉了,晚安
不可变的tuple意义就在于因为不可变,所以代码更安全。如果可能,能用tuple就尽量用tuple。
复制代码 代码如下:
>>> tuple=('1','2','3')
>>> tuple[0]=6
Traceback (most recent call last):
File "
tuple[0]=6
TypeError: 'tuple' object does not support item assignment
定义一个空tuple:
复制代码 代码如下:
>>> tuple1=()
>>> tuple1
()
注意,要定义一个只有1个元素的tuple:
复制代码 代码如下:
>>> tuple2=(666,)
>>> tuple2
(666,) #正确的
>>> tuple3=(666)
>>> tuple3
666 #错误的,只定义了666这个数
注意:Tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
复制代码 代码如下:
>>> l=['CCTV-5','HI']
>>> tuple4=('UFO','HACK',l)
>>> tuple4
('UFO', 'HACK', ['CCTV-5', 'HI'])
>>> l[1]='我先变一下'
>>> tuple4
('UFO', 'HACK', ['CCTV-5', '我先变一下'])
Python在显示只有1个元素的tuple时,也会加一个逗号以免你误解成数学计算意义上的括号。
总结:
list和tuple是Python内置的有序集合,一个可变,一个不可变。你可以根据需要来选择使用它们。
-
上一个: PHP编译安装后PHP-FPM使用笔记
相关文章
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31
- php双向队列解读 10-31
- Laravel异常上下文解决教程 10-24
- php数组查询元素位置方法介绍 10-24