python日常学习——字典概念

今天咱们来学习一个全新的数据类型,叫字典。字典是非常非常重要的一种数据类型,我们未来在开发的时候,会经常的能用到。它的重要性,一点不亚于列表和字符串啊,所以呢,你必须把它掌握的非常非常的好才可以。

首先先介绍一下啊,字典它的存储方式跟之前的存储方式是有一些差别的。首先,字典是以键值对的形式进行存储数据的。列表,一个个往里扔就完了,但是呢,字典不是,字典是一对儿一对儿一对儿的。就好比说我们去存储一个数据,比如就存个打火机吧,那存个打火机的话,我可以在打火机上贴上一个标签儿,然后我在存的时候呢,就把这个标签儿和这个打火机一起存进去。以后我想找这个打火机的时候,我只要翻那个标签儿就可以了。所以这里面它是存储两样东西,一个是键,一个是值。那么我们在存储的时候,是键值一起存进去,找的时候,是根据键来去找这个值的。

所以它的数据里面一定是有键和值的,有两项东西。所以字典的表示方式基本上就出来了,它是以大括号的形式来存在的,并且大括号里面儿所放的元素,每一项都是一个键和值,就是数据一个,标签一个。那必须得有标签:数据啊。

那么再往下,如果还有其他的标签,那就是key2:value,然后呢key3:value,它是以这样的一种形式来存储的,并且呢,每一个key:value之间用逗号隔开啊,这是它的一个存储结构。

那我们简单的先去定义一个字典吧,一个字典,等于,写个括号,比方说"jay",来给它往里放个数据,叫周杰伦。再往下,我们放上金毛狮王,金毛狮王是谁?是谢逊。

那这样的话,我们就可以往这个字典里面存了,存进去之后,我想往出取,重点不是说存,重点是往出取。往出拿的话,注意,你存的时候,是以键值这么一对儿来存储的,所以我们取的时候是根据这个键的数据来取这个值的,就是根据前面那个去找后面那个。

那怎么来拿?我们可以这样来做啊,比方说val等于字典中括号。哎,你一看到中括号,你能想到什么?是不是索引呢?那索引的话,对于列表而言,对于字符串儿而言,是不是0123这玩意儿?但是到了字典里面直接是键,你要把键扔进去,把key扔进去,它就会帮你去找。jay是哪一项啊?jay是周杰伦。这一项的话,把这一项的value返回去,就把周杰伦返回给前面这个val。

我们来打印一下。

周杰伦就出来了。所以它的存储结构或者说是去拿数据的方式,跟那个列表差不多,用起来感觉差不太多,只不过把那个索引的变成了key,仅此而已。这个就是字典的存储。

那么字典存储的话,它对键和值是有分别不同的要求的。注意,这里面字典的key必须是可哈希的数据类型啊,因为它存储的时候是通过key来去计算一个哈希值,算好了那个值之后去存储这两项东西,所以这个键就是key,它也是需要进行哈希计算的,所以要求key必须可哈希。

那可哈希的话就是不可变,那我们来试验一下啊,看看是不是真的。我们来随便准备一个字典等于[],它是可变的,可变不可哈希。所以它不能当key,我强行的当key试一下啊。

来打印一下。

你会发现它报错。所以这里面儿它不可以往这儿放啊,也就是说key必须是可哈希的数据类型。

那么value有没有要求呢?字典的value可以是任何数据类型,放什么都可以。那比方说我现在准备一个字典等于{"汪峰的孩子":["孩子一","孩子二"]}

那这时候你就会发现我的value是不是放了一个列表啊?那此时我运行一下。

哎,程序没报错,那就是好事儿,说明value可以放这个列表。所以说我们的字典的value可以放任何的数据类型。

那这是关于字典的一些基本结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值