第二讲-讲解列表、元组、集合和字典
上一讲我们讲了Python中的基本数据类型的几种,今天我们讲列表(list)、元组(tuple)、集合(set)和字典(dict)。
列表:
列表用中括号([])来表示,如:
由于python中无需定义变量,所以直接使用赋值语句即可把a定义为一个列表,并且赋值,大家可以看到,我在列表中,放的有双引号引起来的字符串,有单引号引起来的,有数字,甚至还有一个列表。
python的列表,可以存放任何类型的变量,读取当一个列表中含有另一个列表时,其性质就相当于是二维列表,甚至三维列表甚至更多。
和其他语言一样,a[0]读取的是第一个字符串"adf",因为a[3]处是另一个列表,所以,我们可以选择a[3]直接读取整个列表,也可以a[3][0]去读取此列表中的第一个字符串。
列表很强大,增删查改都可以,python已经封装好了一些方法:
a.append(变量) #追加在列表后
a.insert(位置,变量)#在某位置插入一个
a.pop() #返回最后一个元素并删除
a.remove(var) #删除第一次出现的该元素
a.count(var) #该元素在列表中出现的个数
a.index(var) #该元素的位置,无则抛异常
a.extend(list) #追加list到a
a.sort() #排序,只适用于纯数字列表。
a.reverse() #倒序
del a[1] #删除指定下标的元素
del a[1:3] #删除指定下标范围的元素
元组:
元组是用一对小括号来表示的,但是不同的是,元组必须在定义的时候就给定里面的值,因为元组里面的内容是无法被改变的。
在Python中,元组有一个陷阱,对新手来讲是非常致命的,如图:
当我们定义空元组时,我们可以看到我们的a仍然是元组类型(tuple),但是,如果我们只是给元组了一个变量,不管他是字符串还是数字,我们认为会是元组的a却成为了一个int类型或者str类型,这是为什么呢?
因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,为了防止歧义,所以就有一个规则:如果定义元组时只有一个元素,需要在那个元素后面加一个逗号。
大家看上图,当我在15后面加了个逗号,类型就成了元组。
有人会说,如果我先定义了一个列表,只存放了一个元素,然后转换为元组,会怎么样呢?
这个时候,python的解释器会自动在元组的后面加一个逗号,来满足之前讲到的规则。
如图:
虽然元组中的存放的数据是无法修改的,但是我们可以使用列表中讲到的del方法,去删除整个元组。
集合:
在中学,我们就学习了数学中集合的概念:集合是指具有某种特定性质的具体的或抽象的对象汇总成的集体,这些对象称为该集合的元素。
而集合也有几个性质,如无序性,互异性(即一个集合中不可能存在相同的元素),确定性(即要么有这个元素,要么没有这个元素)。
在python中的集合和其他有集合的语言一样,是一个无序的、互异的。
在python中,集合也支持增删查改。
增加一个元素:
a.add(变量) #向集合中增加一个元素。
删除一个元素:
a.remove(变量)
#从集合中删除某变量,如果不存在将引发错误
a.discard(变量) #若是集合中的元素则删除
a.pop() #弹出任意一个对象,并返回它
a.update(t) #将t中a没有的成员加入a
a.clear() #删除集合中的所有元素
字典:
字典使用一对花括号({})
字典就类似于字典一样,成员是成对存在的,一个叫做键(key),另一个叫做值(value)。每一个键都对应了一个值,虽然存储时也是无序的,但是可以通过键来读取值,如:
新增一对键值:
m.update({'d':4})
#对应键值存在时,更新,不存在时,加入
a.keys()获得键的列表
a.values()获得值的列表
但是获得之后不能直接用,需要使用list转换成列表去使用,如图:
同样的,获取键的列表的时候也一样,需要转化为列表才能当做列表去使用。之外的,字典也有其他方法,如:
a.pop(键)#删除某对键值
a.get(键)#获取某键的值并返回。
以及:
a.clear()#清空字典。
今天的东西有点多,大家要认真看,注意某些陷阱,特别是元组那里,谢谢观看!
如果觉得写得好,就转发吧
(*╹▽╹*)
领取专属 10元无门槛券
私享最新 技术干货