List : 列表
1. 生成
PeopleInfo = ['Phoenix', 23, 99, True]
上面我们定义了一个List,其中可以包含各种不同数据类型。
2. 访问
>>> print L[0] # 第0个元素
Phoenix
>>> print L[3]
True
>>> print L[-1] # 倒数第一个元素
True
>>> print L[-3]
23
3. 添加、删除和替换元素
添加采用函数 append()
>>> PeopleInfo.append('Shan Xi')
>>> print PeopleInfo
PeopleInfo = ['Phoenix', 23, 99, True, 'Shan Xi']
可以看到,添加元素默认为最后一位。如果要添加到指定位置,如下示例:
>>> PeopleInfo.append(0,'No.1')
>>> print PeopleInfo
PeopleInfo = ['No.1', 'Phoenix', 23, 99, True, 'Shan Xi']
删除采用函数 pop()
>>>PeopleInfo.pop()
'Shan Xi'
>>>print PeopleInfo
PeopleInfo = ['No.1', 'Phoenix', 23, 99, True]
可见,删除默认从最后一个元素删除。若要从指定位置删除,如下示例:
>>>PeopleInfo.pop(0)
'No.1'
>>>print PeopleInfo
PeopleInfo = ['Phoenix', 23, 99, True]
替换元素
>>> PeopleInfo[3] ='Shan Xi'
>>>print PeopleInfo
PeopleInfo = ['Phoenix', 23, 99,'Shan Xi']
>>> PeopleInfo[-1] = True
>>>print PeopleInfo
PeopleInfo = ['Phoenix', 23, 99, True]
Tuple : 元组
和List不同的是,Tuple 一旦建立就不能改变其元素了。
1. 定义
PeopleInfo = ('Phoenix',23, 99, True)
既然 tuple 定义就是用(),那么 (9)到底是 整数 还是 tuple 呢?
(9)是整数,若要定义 单元素 9 的 tuple ,定义格式应为 (9,)!!!
2. 访问
同 List 一样。
3. 来看看一个特殊的 tuple
PeopleInfo = ('Phoenix', [23, 99], True)
这里 tuple 实际有三个元素。其中第二个元素是个 list。
tuple 本身不能改变,但 list 可变,所以,这里 [ 23, 99] 也是可以改变的。
Dict
1. 定义
PeopleInfo = {
'Phoenix' : 10.0
'Tree' : 9.7
'Sky' : 9.6
}
这个dict由 “名字”和“成绩”组成。“名字”叫 key,“成绩”叫 value。
我们来看看这个 PeopleInfo 的长度
>>> len(PeopleInfo )
3
也就是说,一个 key - value算一个长度。
2. 访问
>>> print PeopleInfo['Tree']
9.7
>>> print PeopleInfo.get('Sky')
9.6
>>> print PeopleInfo.get('phoenix')
None
get用来检测访问单元是否存在。不存在时,返回 None。
3. dict 的三个特点
首先,是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。
其次,存储的key-value序对是没有顺序的。
>>> print PeopleInfo
{ 'Tree' : 9.7, 'Phoenix' : 10.0, 'Sky' : 9.6 }
第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。
4. dict 的更新
>>> PeopleInfoD['Ruifeng'] = 9.9
>>>print PeopleInfo
{ 'Tree' : 9.7, 'Ruifeng':9.9,'Phoenix' : 10.0, 'Sky' : 9.6 }
>>> PeopleInfo['Sky'] = 9.8
>>>print PeopleInfo
{ 'Tree' : 9.7, 'Ruifeng':9.9,'Phoenix' : 10.0, 'Sky' :9.8 }
Set
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
1. 定义
>>> PeopleInfo_Set = set(['Phoenix', 'Tree', 'Sky'])
>>> print PeopleInfo_Set
set(['Phoenix', 'Sky', 'Tree'])
注意,输出是无序的。
>>> PeopleInfo_Set = set(['Phoenix', 'Tree', 'Sky', 'Sky'])
>>> print PeopleInfo_Set
set(['Phoenix', 'Sky', 'Tree'])
>>> len(PeopleInfo_Set )
3
注意,set 不能包含重复的元素。PeopleInfo_Set 的长度任然为3。
2. 访问
set 是无序的,因此无法通过索引访问。通常用 in 来判断 set 中是否存在某元素。
>>> 'Phoenix' in PeopleInfo_Set
True
>>> 'sky' in PeopleInfo_Set
False
3. 添加和删除
添加采用函数 add()
>>> PeopleInfo_Set.add('Sky')
>>> print PeopleInfo_Set
set(['Phoenix', 'Sky', 'Tree'])
>>> PeopleInfo_Set.add('Ruifeng')
>>> print PeopleInfo_Set
set(['Phoenix', 'Sky', 'Ruifeng', 'Tree'])
删除采用函数 remove()
>>> PeopleInfo_Set.remove('Sky')
>>> print PeopleInfo_Set
set(['Phoenix', 'Ruifeng', 'Tree'])
4. 总结一下 set 的特点
set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
最后,set存储的元素也是没有顺序的。