首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

暑假跟我学Python-第二讲

第二讲-讲解列表、元组、集合和字典

上一讲我们讲了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()#清空字典。

今天的东西有点多,大家要认真看,注意某些陷阱,特别是元组那里,谢谢观看!

如果觉得写得好,就转发吧

(*╹▽╹*)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180703G0WWQS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券