列表(list)列表就是C语言和Java里面的数组,只是名称不一样而已。Python里叫list。
你可以在列表里放一些数据,便于统一处理。
>>> prices = [21.5, 32.5, 34.6, 10]
>>> prices
[21.5, 32.5, 34.6, 10]
你可以通过索引的方式对每一个列表元素处理:
>>> prices[0]
21.5
记住,索引是从0开始的,因此列表的最后一个索引是列表长度-1。通过len()可以得到列表的长度:
>>> len(prices)
4
>>> prices[len(prices)-1]
10
当你的索引超出范围时,就会出错:
>>> prices[4]
Traceback (most recent call last):
File "", line 1, in
prices[4]
IndexError: list index out of range
如果你想得到最后一个元素,你还可以使用索引 -1 :
>>> prices[-1]
10
>>> prices[-2]
34.6
跟C语言一样,列表里的元素是可变的。
>>> prices[0] = 0
>>> prices[0]
0
列表中的几个常用方法
- append()
这个方法用于在列表的末尾追加一个元素:
>>> prices.append(100)
>>> prices
[21.5, 32.5, 34.6, 10, 100]
- insert()
这个方法用于在指定位置插入元素,比如在索引1的位置插入1000:
>>> prices.insert(1, 1000)
>>> prices
[21.5, 1000, 32.5, 34.6, 10, 100]
- pop()
这个方法用于删除列表末尾的元素:
>>> prices.pop()
>>> prices
[21.5, 1000, 32.5, 34.6, 10]
你也可以指定删除位置:
>>> prices.pop(1)
>>> prices
[21.5, 32.5, 34.6, 10]
列表中,元素的数据类型可以不一样,可以同时包含数字和字符串:
>>> L = [1, "2", "张三"]
列表中甚至可以包含列表:
>>> L.append([3, 4, 5])
>>> L
[1, "2", "张三", [3, 4, 5]]
你可以通过L[3][1]的方式得到4:
>>> L[3][1]
4
>>> L[3][0]
3
>>> L[3][2]
5
元组(tuple)
Python里有一个特殊的列表叫元组,它跟列表几乎一模一样,只是元组里的数据一旦定义就不能更改,所以list里的那些改变元素的方法统统不能用,比如:append(),insert(),pop()。
而且元组使用小括号表示
>>> age = (18, 19, 20, 21)
>>> age
(18, 19, 20, 21)
如果元组里只有一个元素,必须在这个元素后面加上一个逗号:
>>> t = (1, )
>>> t
(1, )
因为在数学中,数字外面加上括号仍然是数字,Python为了进行区分才这样强制要求的。
元组里也可以包含元组,元组里还可以包含列表,虽然元组里的元素不可变,但是元组里的列表是可变的:
>>> t = (1, 2, 3, [4, 5])
>>> t[3][0] =100
>>> t[3][1] =1000
>>> t
(1, 2, 3, [100, 1000])
因为对于元组来说,它里面的列表实际上是一个指针,指针本身没变,所以元组认为这个元素也就没变,只是指针自己心里清楚,他指向的列表数据变了。