Python内的一种数据类型是列表:list。
list是一种有序的集合,可以随时添加和删除其中的元素。
list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。
构造list非常简单,按照上面的代码,直接用[ ]把list的所有元素都括起来,就是一个list的对象。
通常,我们会把list赋值给一个变量,这样,可以通过变量来引用list: >>>name = ['a','b']
同事,list中所包含的元素不要求是同一种数据类型。
list添加新元素----append,insert
>>> L = ['andy','baby','LiLi']
>>>L.append('Paul')
>>>print L
['andy','baby','LiLi','Paul']
append()总是把新元素添加到list的尾部。
如需添加到第一位,则
L.insert(0,'Paul']
将Paul添加到索引为0的位置,之前的索引全部向后自动后移一位。
list删除元素
pop()方法总是删除最后一位元素,并且返回这个元素
pop(2),删除索引为2的元素
list替换元素
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L[2] = 'Paul' >>> print L L = ['Adam', 'Lisa', 'Paul']
tuple是另一种有序的列表,中文翻译为“元组”。tuple和list非常相似,但是tuple一旦创建完毕就不能修改了
t = ('a','b','c')
我们已经知道。list和tuple可以用来表示顺序集合,例如,班里同学的名字['Adam', 'Lisa', 'Bart']
或者考试的成绩列表:[95,85,59]
但是要根据名字找到对应的成绩,用两个list表示就不方便。
如果把名字和分数关联起来,组成类似的查找表:
Adam-->95, Lisa-->85, Bart-->59
给定一个名字,就可以直接查到分数。
Python提供dict,用dict表示“名字”--“成绩”的查找表如下:d = {'Adam':95,
'Lisa':85,
'Paul':59} #用花括号表示,最后一个key的value逗号可以省略
我们把名字称为key,对应的成绩称为value,dict就是通过key来查找value。
由于dict也是集合,len()函数计算任意集合的大小。len(d)表示为3.dict的访问
可以简单地使用d[key]的形式来查找对应的value,这和list很像,list应用索引查找对应的元素
>>> print d['Adam']
95
>>> print d['Paul']
Traceback (most recent call last):
File "index.py", line 11, in
print d['Paul']
KeyError: 'Paul'
#如果key不存在,报错,一是,可先进行判断,如果不存在自然不会执行,从而避免错误
if 'Paul' in d:
print d['Paul']
二是使用dict本身提供的一个get方法,在key不存在的时候,返回None:
>>>print d.get('Paul')
None
dict的特点是查找快速,不像list一样随着元素增加而逐渐下降
dict占用内存大,还会浪费很多内容
dict是按key查找,所以,在一个dict中,key不能重复
dict的第二个特点三key-value序对是没用顺序的
dict中key的元素是必须不可变的,Python的基本类型如字符串、整数、浮点数都是不可变的
都是可以作为key。但是list是可变的,就不能作为key
有的时候,我们只想要dict的key,不关心value,目的是保证这个集合的元素不会重复
set可以完成这一要求,set持有一系列元素,set的元素没有重复,而且三无序的。
创建set的方式是调用set()并传入一个list,list的元素将作为set的元素
>>>s = set(['A','B','C'])
>>>print s
set(['B','A','C'])
>>> s = set(['A', 'B', 'C', 'C'])
>>> print s
set(['A', 'C', 'B'])
>>> len(s)
3
添加元素时,用set的add()方法:
s.add(D)
删除set的元素时,用set的remove()方法
如果删除的元素不存在,则会报错,所以用add()可以直接添加,而remove()前需要判断。