Python学习笔记03-容器

List

list是一种有序的集合,可以随时添加和删除其中的元素。比如:

>>>classmates = ['Michael' , 'Bob' , 'Tracy']
>>>classmates
['Michael','Bob','Tracy']

变量classmates就是一个list,用len()函数可以获得list元素的个数,用索引来访问list中的每一个位置的元素,索引从0开始:

>>>len(classmates)
3
>>>classmates[0]
'Michael'

如果需要从后向前访问,可以使用-x做索引,-1代表最后一个元素,-2代表倒数第二个元素,以此类推,-3代表倒数第三个元素,索引访问时注意不要越界。

>>>classmates[-1]
'Tracy'
>>>classmates[-2]
'Bob'

向list末尾追加元素使用append()方法,list向指定位置插入元素使用insert(),删除末尾元素使用pop()方法,删除指定位置元素使用pop(i)方法,list可以直接通过索引访问并修改元素,如下:

>>>classmates.append('Adam')
>>>classmates
['Michael', 'Bob', 'Tracy', 'Adam']
>>>classmates.insert(1,'Jack')
>>>classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
>>>classmates.pop()
'Adam'
>>>classmates
['Michael', 'Jack', 'Bob', 'Tracy']
>>>classmates.pop(1)
'Jack'
>>>classmates
['Michael', 'Bob', 'Tracy']
>>>classmates[1] = 'Sarah'
>>>classmates
['Michael', 'Sarah', 'Tracy']

list里面的元素数据类型也可以不同,比如:

>>> L = ['Apple',123,True]
#list的元素也可以是另一个list
>>>s = ['python','java',['asp','php'],'sheme']
>>>len(s)
4

要获取s中的'php'元素,可以使用s[2][1],这里的s可以看成是一个二维数组,类似的也有三维、四维...数组。

>>>s[2][1]
'php'
#list中可以不含任何元素
>>>L = []
>>>len(L)
0

tuple

tuple和list非常类似,但是tuple一旦初始化就不能修改,它没有append()insert()这样的方法。其获取元素的方法与list一样。

>>>classmates = ('Michael','Bob','Tracy')
>>>classmates[0]
'Michael'
>>>classmates[-1]
'Tracy'

tuple只有一个元素是不可以写成t = (1),因为其与数学公式中的括号产生了歧义,要使用t = (1,)定义tuple只有一个元素。
最后来看一下“可变的”tuple

>>>t = ('a','b',['A','B'])
>>>t[2][0] = 'X'
>>>t[2][1] = 'Y'
>>>t
('a','b',['X','Y'])

t中有个list元素,此list中的元素是可变的,不要与tuple不可变属性搞混噢。

dict

dict全称dictionary,在其他语言中也称为map,使用健-值(key-value)存储,具有极快的查找速度。
比如一个考试成绩记录表上面有“名字”和“成绩”两列,为了通过姓名快速查找到成绩,我们可以按如下方式定义dict:

>>>d = {'Michael':95,'Bob':75,'Tracy':85}
>>>d['Michael']
95

dict中可以直接通过key对value进行访问、修改或插入(当dict中没有此key时则插入)如下:

>>>d['Michael'] #访问d中Michael的Value值
95
>>>d['Jack']#d中不包含Jack,此语句执行失败
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'Jack'
>>>'Jack' in d#通过in来判断key是否存在
False
#向d中插入或修改已有value值
d['Jack'] = 90 #d中没有Jack,则将Jack - 90 插入到d中
d['Jack'] = 80 #d中含有Jack,则将原来的90改为了80

通过dict提供的get()方法也可以判断key是否存在,若存在则返回value,若不存在则返回None或指定值,如下:

>>>d.get('Thomas')#什么也没返回,即返回None
>>>d.get('Thomas',-1)
-1

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

>>>d.pop('Bob')
75
>>>d
{'Micheal':95,'Tracy':85,'Jack':80}

注:dict的key必须是不可变对象

set

set是一组key的集合,但不存储value,由于key不能重复,所以在set不存在两个或多个相同的key。
创建set需要提供一个list作为输入集合,如下:

>>>s = set([1,2,3])
>>>s
{1,2,3}
>>>s = set([1,1,2,2,3,3,3,])#set会自动去重
>>>s
{1,2,3}

通过add(key)方法向set中添加元素,多次add同一个元素与只add一次等价,通过remove(key)方法删除元素:

>>>s.add(4)
>>>s
{1,2,3,4}
>>>s.add(4)
>>>s
{1,2,3,4}
>>>s.remove(4)
>>>s
{1,2,3}

set可以翻译成集合,与数学中的集合类似,可以做交集和并集:

>>>s1 = {1,2,3}
>>>s2 = {2,3,4}
>>>s1&s2
{2,3}
>>>s1|s2
{1,2,3,4}

学习资料源自廖雪峰官方网站

你可能感兴趣的:(Python学习笔记03-容器)