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 "<stdin>", line 1, in <module>
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}
学习资料源自廖雪峰官方网站
网友评论