查看原文
其他

数据类型——Dict、Set与Frozenset简析

爬虫俱乐部 Stata and Python数据分析 2023-01-01

本文作者:李嘉琪,中南财经政法大学金融学院

本文编辑:张   猛

技术总编:王玉婷


Stata&Python云端课程来啦!

     为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~爬虫俱乐部推出了Python编程培训课程Stata基础课程Stata进阶课程。报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦。我们在这篇推文的最后提供了每门课程的课程二维码,大家有需要的话可以直接扫描二维码查看课程详情并进行购买哦~


们在前面的推文中,已经了解了基本的数据类型,比如数值型、字符串、列表、元组、字典、集合等。话不多说,今天我们就来详细介绍字典和集合吧!


一、字典
字典(dict)是一系列键值对的可修改的集合,通过一个大括号来定义,每个键都与一个值相对应,构成Key-Value键值对,其中键是唯一的,值可以不唯一。就像我们在字典中使用目录去查找内容,“目录”就是键,“内容”就是值。

1.字典的创建方法

dicta = {"湖北":"武汉","福建":"厦门",7:9}#字典的键可以是字符串或者数值,值则不受限制,可以为任何对象。empty_dicta = {} # 定义一个空字典

2.字典的使用与修改

#字典通过在方括号内输入相应的键来得到对应的值。print(dicta["湖北"])print(dicta[7])#字典可以修改dicta["新增"] = "新值" #字典可以便利地新增键值对(这也是一种修改)print(dicta)
#字典可以被for循环遍历for k in dicta: print(k,dicta[k])

运行结果如下:

3.列表与字典的区别

(1)不同点

a. 列表中的元素不需要类型相同,字典的键(只)可以是字符串或者数值,值则不受限制,可以为任何对象。
b. 列表是有序的,字典是无序的,没有索引值。

(2)相同点

a.都可以被for循环遍历。
b.元素内容都可以被修改。

二、可变集合
Python中的集合数据类型指的是一系列值(元素)组成的一个集合。用set()函数创建一个无序不重复元素集,可进行关系测试、删除重复数据、计算数学运算如交集、并集、差异和对称差异。

1.  可变集合的创建方法

可变集合(set)可以使用大括号“{}”或者set()函数创建集合,但是创建空集合时必须用set()而不是大括号“{}”。set不同于dict,没有存储对应的value,不存在键值对。定义一个集合之后,可以判断某个元素是否在集合内,如判断hello,World是否在集合s中。
s={'hello,World','hello,China'}s#判断hello,World是否在集合s中a = 'hello,World' if a in s: print(f'{a}在集合中')else: print(f'{a}不在集合中')
运行结果如下:

2.  集合set的特点

(1)自动过滤重复元素

#set是可变集合,集合内的数据是不可以重复的,所以set可以自动过滤重复元素s2={1,2,1}s2

运行结果如下:

(2)无序性

创建可变集合set之后,元素的排列顺序不一定是按照我们输入的顺序排列。
s2={1,32,4,3,56,9}s2
运行结果如下:

(3)可以对集合进行运算

a. 交集运算,得出两个集合的相同元素。
s3={1,2,3}s4={2,5,6}s3&s4
运行结果如下:

b. 差集运算,将被减集合中两者共有的元素去掉。
s3-s4
运行结果如下:

c. 并集运算,将两个集合的元素剔除重复之后拼接。
s3|s4
运行结果如下:


三、不可变集合
Python也可以生成一个不可变的集合(frozenset),冻结后的集合不能再添加或删除任何元素。不可变集合不可修改,试图修改是会报错的。

1.不可变集合的创建和使用

用frozenset可以()创建一个不可变集合。创建frozenset集合之后,对于set集合中不改变本身的方法和操作符都是支持的。

(1)不可变集合的创建和遍历

A = frozenset('hello')Afor i in A: print(i)
运行结果如下:

(2)不可变集合是可以运算的

B = set('world') #创建一个可变集合#此时A为不可变集合,B为可变集合,对两个集合进行运算A | B #输出不可变集合#B | A #输出可变集合
运行结果如下:

2.可变集合(set)与不可变集合(frozenset)的区别

set无序排序且不重复,是可变的,有add(),remove()等方法。基本功能包括关系测试和消除重复元素,集合对象还支持union(联合), intersection(交集), difference(差集)等数学运算。
frozenset是冻结的集合,它是不可变的,好处是它可以作为字典的key。缺点是一旦创建便不能更改,没有add(),remove()方法。

小结
总结来讲,dict数据类型是一种无序的、可变的组合数据类型,dict是可修改的,也可以通过输入相应的键来查找对应的值。set是无序不重复的可变集合,基本功能包括关系测试和消除重复元素。frozenset是冻结的集合,是不可变的,其他特点与集合一致。
以上内容就是对Python数据类型的简单梳理,掌握这些基础知识是学好Python的第一步,感兴趣的小伙伴快动手试试吧!


End

最后,我们为大家揭秘雪球网(https://xueqiu.com/) 最新所展示的沪深证券和港股关注人数增长Top10。



腾讯课堂课程二维码






 对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!


往期推文推荐

Stata小贴士之外部命令安装路径

有一种夏天叫做宫崎骏的夏天

换装术|多个Excel文件如何一键转为dta格式

【基础篇】Python可变对象与不可变对象

Stata绘图系列——细节掌控绘图区域!

 4月A股的收官战之概念板块哪家强?

解放双手!你必须要会的两个命令—inlist & inlist2

【基础篇】字符串之判断方法

Stata绘图系列——让你的直方图随心所欲

【爬虫篇】湖人无缘季后赛,球迷如何回应

客官,要来份四象限图吗?

Python实现简繁体转换

Stata与Python交互方法及数据传递

 “青铜”爬“王者”

 留下想要的变量,你会几种方法?

 Python:朋友圈配图,我承包了

 绘制全国祠堂密度地图

 如何使用Stata绘制一幅好看的柱状图?

【爬虫篇】基于selenium爬取美团评论

 双标的莱万——足球无关政治?!

 Stata处理重复值:duplicates

It's time to send a flower to your lover!        2021各省GDP新鲜出炉

 爬虫实战-采集全国各省疫情数据

 log——为你的操作保驾护航

 一行代码教你玩转emoji

 票房遇冷的春节档口碑冠军丨《狙击手》影评分析

 学习丰县,营造良好营商环境!

 大国丢娃图:从川渝到徐州!

 丰县“失火”,殃及徐州:股市超跌近30亿!

 Unicode转义字符——编码与解码

        徐州!徐州!

        B站弹幕爬虫——冬奥顶流冰墩墩&雪容融

        不会用Stata做描述性统计表?so easy!

        丰沛之地:备足姨妈巾

 过年啦,用Python绘制一幅属于你的春联吧!

       登上爬虫俱乐部“时光机” |上“机”出发 开启一段奇妙之旅

       【基础篇】查找并输出子字符串的定位

关于我们 


   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里
为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众
号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存