
上一篇「Python自学之路-数据类型和变量」主要简单说明了下数据类型和变量,这一篇主要和大家介绍下list、tuple、dict和set。相信后期在实战中会经常用到。
一、list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
首先可以定义一个城市的变量citys:
>>> citys=['Shanghai','Beijing','Guangzhou','Suzhou']
>>> citys
['Shanghai', 'Beijing', 'Guangzhou', 'Suzhou']
获取citys中某个元素,注意索引是从0开始的:
>>> citys[0]
'Shanghai'
Python有个特殊的技能,可以从最后一个元素开始取
>>> citys[-1]
'Suzhou'
追加元素可使用append(追加至末尾):
>>> citys.append('Wuhan')
>>> citys
['Shanghai', 'Beijing', 'Guangzhou', 'Suzhou', 'Wuhan']
元素插入到指定的位置使用insert:
>>> citys.insert(1,'Qingdao')
>>> citys
['Shanghai', 'Qingdao', 'Beijing', 'Guangzhou', 'Suzhou', 'Wuhan']
删除置顶位置的元素使用pop(i),i为索引位置,不填表示删除末尾的元素:
>>> citys.pop()
'Wuhan'
>>> citys
['Shanghai', 'Qingdao', 'Beijing', 'Guangzhou', 'Suzhou']
元素替换可以直接赋值:
>>> citys[0]='上海'
>>> citys
['上海', 'Qingdao', 'Beijing', 'Guangzhou', 'Suzhou']
另外,list中的元素类型可以是不同的:
>>> test=['上海',520,True]
>>> test
['上海', 520, True]

二、tuple
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。
list定义时是使用[],而tuple是使用()
由于定义的tuple不能变,所以也就不存在append(),insert()这样的方法,但其他获取元素的方法还是和list一样的。
有两个注意点需要注意:
1.定义tuple时,元素必须确定下来,当定义一个元素的时候必须加一个逗号','。用来区分()是表示数学公式中的小括号,还是tuple的元素集合边界。
2.tuple中的不可变是指指向不可变。但指向的这个元素本身是可以改变的,比如tuple中嵌套个元素list,那list中的元素是可以改变的。
三、dict
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
相较于list而言,dict的查找和插入的速度极快,同时也不会随着key的增加而变慢。但同时,所占用的内存也相对较多。
>>>d = {'张三':1,'王四':2,'李五':3}
>>>d['张三']
1
这里要注意的是,一个key只能对应一个value,多次赋值只会覆盖。
要判断key在dict中存不存在有两种方式:
一是通过in判断key是否存在:
>>> '张三' in d
True
二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value,如果存在则返回1:
>>> d.get('张三')
1
>>> d.get('张三儿子',-1)
-1
要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
>>> d.pop('张三')
1
>>> d
{'王四': 2, '李五': 3}
四、set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
大家可以看到,重复元素在set中自动被过滤,同时显示的顺序也不表示set是有序的
>>> s = set([11, 22, 33,44,55,44,55])
>>> s
{33, 11, 44, 22, 55}
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
>>> s.add(66)
>>> s
{33, 66, 11, 44, 22, 55}
通过remove(key)方法可以删除元素:
>>> s.remove(66)
>>> s
{33, 11, 44, 22, 55}

五、总结
本次主要整理了list、tuple、dict和set一些常规用法和注意点,相较于其他编程语言还是类似的,如果没有编程基础的可以多看看,多敲敲,相信实战中会经常用到的。
网友评论