前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python学习记录06-字典中的键映射多个值

Python学习记录06-字典中的键映射多个值

作者头像
huolong
发布2023-09-07 10:30:44
发布2023-09-07 10:30:44
47500
代码可运行
举报
文章被收录于专栏:技术指北技术指北
运行总次数:0
代码可运行

本节的内容是Python中的字典,一个key映射多个value的内容。 Python的基础知识学习里,我们常用的字典是这样的。 都是一个key映射一个value

代码语言:javascript
代码运行次数:0
运行
复制
dict1 = {"hello":"world","nihao":"shijie"}
print(dict1)
print(dict1["hello"])  #world
print(dict1["nihao"])   #shijie

如果想一个key映射多个value, 我们就需要让value也是一个容器,可以是列表,也可以集合。看具体的使用场景。列表的特性是可以保持顺序,集合的特性是可以去重。 可以用以下的方式来创建一个映射多个value 的字典

代码语言:javascript
代码运行次数:0
运行
复制
test1 = {
    "key1":['value1','value','value3'],
    "key2":{"value4",'value5','value56'}
}
print(test1)   #{'key1': ['value1', 'value', 'value3'], 'key2': {'value4', 'value5', 'value56'}}

如果想添加元素,则可以使用。append和add 。注意是列表用append,set用add。set没有append方法,如果用它就会报错。

代码语言:javascript
代码运行次数:0
运行
复制
test1["key1"].append('value7')
test1["key2"].add('value8')
print(test1)   #{'key1': ['value1', 'value', 'value3'], 'key2': {'value4', 'value5', 'value56'}}

写的时候有些许麻烦,我们可以使用collections里的defaultdict来快速简单的创建这样的字典。我们只关注添加元素即可,若果对应的key不存在,则会自动帮我们创建的

代码语言:javascript
代码运行次数:0
运行
复制
from collections import defaultdict

d = defaultdict(list)
d['a'].append(1)
d['a'].append(3)
d['a'].append(5)
print(d)  #defaultdict(, {'a': [1, 3, 5]})

s = defaultdict(set)
s['b'].add(4)
s['b'].add(5)
s['b'].add(6)
print(s)  #defaultdict(, {'b': {4, 5, 6}})

接下来我们来尝试实现一个多值映射的字典,可以使用

代码语言:javascript
代码运行次数:0
运行
复制
test1= {"a1":"s1","a2":"s2","a3":"s3"}
d = {}
for key,value in test1.items():
    if key not in d :
        d[key]=[]
    d[key].append(value)
print(d)

如果使用defaultdict,则会更简单

代码语言:javascript
代码运行次数:0
运行
复制
test1= {"a1":"s1","a2":"s2","a3":"s3"}
d = defaultdict(list)
for k,v in test1.items():
    d[k] = v
print(d)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年09月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档