创 建:
List(Python内置的一种数据类型是列表:list,是一种有序的集合,可以随时添加和删除其中的元素。)
格式:L = ['Adam',95.5, 'Lisa',85, 'Bart', 59]
print L
结果:['Adam', 95.5, 'Lisa', 85, 'Bart', 59]
Tuple (tuple是另一种有序的列表,tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。)
格式:t = ('Adam',95.5, 'Lisa',85, 'Bart', 59)
print t
结果:('Adam', 95.5, 'Lisa', 85, 'Bart', 59)
*创建单元素需多加个“,”以消除歧义:
t = (1,)
print t
结果:(1,)
Dict (无序的列表,把名字称为key,对应的成绩称为value,dict就是通过 key 来查找 value,dict的key是不能重复的。)
格式:d = {'Adam': 95,'Lisa': 85,'Bart': 59}
print d
结果:{'Lisa': 85, 'Adam': 95, 'Bart': 59}
Set (set持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和dict 的 key很像)
格式:s = set(['Adam',95.5, 'Lisa',85, 'Bart', 59])
print s
结果:set([95.5, 'Bart', 'Adam', 'Lisa', 59, 85])
访 问:
List (按索引L[]访问)
注意索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。
要打印第一名同学的名字,用 L[0]:
>>>L = ['Adam', 'Lisa', 'Bart']
>>>print L[0]
Adam
>>>print L[1]
Lisa
>>>print L[-1]
Bart
*注:索引[-1]是打印倒数第一个元素,[-2]倒数第二个,以此类推。*
Dict (使用d[key]的形式来查找对应的value)
>>>d = {'Adam': 95,'Lisa': 85,'Bart': 59}
>>> print d['Adam']
95
注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。
判断key 是否存在
一用 in 操作符:
if 'Paul' in d:
print d['Paul']
如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。
二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:
>>> print d.get('Bart')
59
>>> print d.get('Paul')
None
Set (访问set中的某个元素实际上就是判断一个元素是否在set中。)
>>>s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
我们可以用 in 操作符判断:
>>> 'Bart' in s
True
>>> 'Bill' in s
False
遍 历:
Dist (直接使用for循环可以遍历dict的key:)
>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
>>> for key in d:
... print key
...
Lisa
Adam
Bart
由于通过 key 可以获取对应的 value,因此,在循环体内,可以获取到value的值。
*要求打印出(name:score的形式)
>>>d = {'Adam': 95,'Lisa': 85,'Bart': 59}
>>>for name in d:
... print name+':',d[name] (*注:print输出前面必须有四个空格)
...
Lisa: 85
Adam: 95
Bart: 59
Set (与Dist一样,直接使用for循环遍历)
>>> s = set(['Adam', 'Lisa', 'Bart'])
>>> for name in s:
... print name
...
Lisa
Adam
Bart
注意: 观察 for 循环在遍历set时,元素的顺序和list的顺序很可能是不同的,而且不同的机器上运行的结果也可能不同。
*要求打印出(name:score的形式)
>>>s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
>>>for x in s:
... print x[0] + ':', x[1]
...
Lisa: 85
Adam: 95
Bart: 59
注意到set的元素是tuple,因此 for 循环的变量被依次赋值为tuple。
Tuple
>>>t=(('Adam', 95), ('Lisa', 85), ('Bart', 59))
>>>for x in t:
... print x[0]+':',x[1]
...
...
Lisa: 85
Adam: 95
Bart: 59