js 在已有字典中存数据_Python字典(dict)和集合(set)

e93eb4bc73a5996b34f8d9f511c3dcf6.gif 1f050fa01518fe8ba8d06ec8d4181fc8.png 想必大家都有查字典的经历吧,让我们再回顾一下查字典的步骤:根据拼音或者边旁找到这个字,然后翻到这个字对应的页数,就能看到这个字的详细解释啦。 Python字典(dict)其实也是差不多的概念,在字典(dict)中存的,其实也是个数据集合,由一组组键值对组成(key -> value)。接下来我们看个小栗子:
dict_1 = {"key1": 100, "key2": 200, "key3": 300}print(dict_1) # 这里输出:{'key1': 100, 'key2': 200, 'key3': 300}print(dict_1["key2"]) # 这里输出:200
这里可以看到字典(dict)的定义和使用还是挺简单的,感觉跟列表(list)有点像诶,只不过列表(list)用的是索引,而且必须是数字0开始,字典(dict)就有点随意了。其中有一个注意点,字典(dict)的key是不能重复的,如果重复的话,后面的value会把前面的覆盖掉,来看看栗子:
dict_2 = {"key1": 100, "key2": 200, "key3": 300, "key2": 400}print(dict_2) # 这里输出:{'key1': 100, 'key2': 400, 'key3': 300}
如果想修改key里面的值怎么办呢?好办,还是上面的dict_2:
dict_2["key3"] = 500print(dict_2) # 这里输出:{'key1': 100, 'key2': 400, 'key3': 500}
如果想要删掉其中的一个key怎么办呢?这里用到了一个关键字del:
del dict_2["key1"]print(dict_2) # 这里输出:{'key2': 400, 'key3': 500}
是不是很好用,就像在写英语一样。 同样的,Python也为字典(dict)内置了一些非常有用的函数,我们来看两个。如果你想复制一个字典(dict)怎么办呢?让我们试试:
dict_2 = {"key1": 100, "key2": 200, "key3": 300}dict_3 = dict_2print(dict_2) # 这里输出:{'key1': 100, 'key2': 200, 'key3': 300}print(dict_3) # 这里输出:{'key1': 100, 'key2': 200, 'key3': 300}dict_2["key2"] = 600print(dict_2) # 这里输出:{'key1': 100, 'key2': 600, 'key3': 300}print(dict_3) # 这里输出:{'key1': 100, 'key2': 600, 'key3': 300}
注意到了吗,我修改了dict_2的值后,dict_3的key2的值也被改了。这是为什么呢?原因是dict_3 = dict_2这个语句,做的动作是把dict_2的地址赋给了dict_3,就像开了一张银行卡,同时也开了一张副卡,两张卡的账户其实是同一个,用主卡取了100块钱后,副卡看到的金额是取完钱之后的余额。同样的,如果是副卡取了100块钱后,主卡看到的金额也是取完钱之后的余额。 那如果我想复制一个字典(dict),两个完全独立互不影响怎么办呢?这时我们的copy()函数就该上场了
dict_2 = {"key1": 100, "key2": 200, "key3": 300}dict_3 = dict_2.copy()print(dict_2) # 这里输出:{'key1': 100, 'key2': 200, 'key3': 300}print(dict_3) # 这里输出:{'key1': 100, 'key2': 200, 'key3': 300}dict_2["key2"] = 600print(dict_2) # 这里输出:{'key1': 100, 'key2': 600, 'key3': 300}print(dict_3) # 这里输出:{'key1': 100, 'key2': 200, 'key3': 300}
dict_2后面加上copy(),就完美解决了上面的问题。 再来看一个keys()函数,它会以列表形式返回了字典的所有key,这个列表的类型是dict_keys,使用时强制转换一下就行:
dict_2 = {"key1": 100, "key2": 200, "key3": 300}print(type(dict_2.keys())) # 这里输出:print(list(dict_2.keys())) # 这里输出:['key1', 'key2', 'key3']
字典(dict)就先讲解到这里,更多内置方法可以参考官方文档。下面简单讲解一下集合(set),集合(set)有点像字典(dict)的keys列表,里面的值不允许重复,它的定义方式如下:
set_1 = {"apple", "orange", "melon", "orange"}print(set_1) # 这里输出:{'apple', 'orange', 'melon'}
注意到了吗,orange出现了2次,但输出的时候,第二个orange没了,这就是集合(set)的特点。它的方法我感觉和列表(list)非常类似,就不再赘述了。同学可以自己敲一遍代码试试。 我们再来复习一下吧,由中括号[]定义的,是列表(list);由小括号()定义的,是元组(tuple);由大括号{}定义的,是集合(set);下次就会讲解到判断语句了,加油。 原文来自:三分钟Python

579c4c35667c8b85cd53371398111d36.png

20669ee921ae200718a2c130fa118e9f.png

小厂IT人如何突破?1年内是否能进入大厂?明天15:00,全网在线直播!美团资深架构师带你复盘全网最热的SRE工程师(Site Reliability Engineer)成长过程,还不快来搭上这班大厂直通车0864d0ba26b2a4ac39b86f1b321c93ce.png戳链接直达:https://ke.qq.com/course/119808

57854bf53f4faaf63973106202a66c6f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值