(python2.7.x)
Lists 列表
列表是一个有序序列(集合),可变的(可以修改),可以理解为其他语言中的数组类型,但是列表更灵活更强大。
列表由方括号[]来定义的,它的元素可以是任意类型或对象,一个列表中可以包含混合元素。
例:
x = [] 创建空列表
x = [1, 2] x = ['a', 'b'] x = [[1, 2]] x = [{1, 2}] 创建列表,它的元素可是任意类型或对象
x = [1, 'ab', [1, 2], {1, 2},{1:1, 2:2}] 创建列表,一个列表中有混合元素
列表访问可以通过切片或索引来访问,索引值也是从0开始,不同于其他语言数据的时,列表索引可以是负数,-1表示最后一个元素。
x = ['a', 'b', 'c']
x = [ | 'a' | 'b' | 'c' | ] |
正索引 | 0 | 1 | 2 | |
负索引 | -3 | -2 | -1 |
索引不能大于最大正索引,不能小于最小负索引,否则会报列表索引超出范围错误:IndexError: list index out of range
切片[index1:index2:step],从索引index1开始(包含index1)到索引index2(不包含index2),步长step(元素的间距),这三个参数都是可选的
Tuples 元组
元组跟列表很相似,但是不可变(不能修改,只能创建)。元组是由()括号来创建的
例:
x = (1, 2, 3)
x[1] = 5 因元组不可变的序列,这样操作会报错:TypeError: 'tuple' object does not support item assignment
注意:单元组就是元组只有一个元素时,需在元素后加个英文半角逗号”,“,否则创建的将不是元组
例:
>>x = (1)
>>x
1 这样创建的不是元组,只是一个附值操作
>>type(x)
<type 'int'> 这样创建的不是元组,只是一个附值操作
>>x = (1,)
>>x
(1,)
>>type(x)
<type 'tuple'>
>>x = () 空元组的创建,这样是合法的
>>x
()
>>type(x)
<type 'tuple'>
Sets 集合
集合对象是一组无序排列元素组成。集合有两种不同的类型:可变集合(set)、不可变集合(frozenset)。
可变集合:可以添加和删除元素,它不是可哈希的,因此不能用做字典的键也不能做其他集合中的元素。
不可变集合:与可变集合相反,不可修改,有哈希值,可用做字典的键或作为集合中的一个成员。
集合的创建:
>>set('hypo')
set(['h', 'y', 'p', 'o'])
>>frozenset('hypo')
frozenset(['h', 'y', 'p', 'o'])