python字典多键值及重复键值的使用方法(详解)

简介: python字典多键值及重复键值的使用方法(详解)

在Python中使用字典,格式如下:

dict={ key1:value1 , key2;value2 ...}


在实际访问字典值时的使用格式如下:

dict[key]


多键值


字典的多键值形式如下:

dict={(ke11,key12):value ,(key21,key22):value ...}


在实际访问字典里的值时的具体形式如下所示(以第一个键为例):

dict[key11,key12]


或者是:

dict[(key11,key12)]


以下是实际例子:


多值


在一个键值对应多个值时,格式:

dict={key1:(value1,value2 ..), key2:(value1,value2 ...) ...}


访问字典里的值的格式如下:

dict[key]


或者

dict[key][index]


循环赋值(重点)


语法结构如以下实例所示

image.png


总结:


通过以上的说明,可以知道在字典的定义中, 冒号( : ) 号前后是分别是一个整体,即使用小括号()将冒号前后部分分别包括起来,在访问字典值时,最好把键放在小括号内成为一个整体。


键值相同的多个键值对

即在字典中,有至少两个成员的键相同,但是键对应的值是不同的,格式如下:

dict={ key1: value1
key1: vaklue2,
... }


在这种形式形式中在后来赋给键的值将成为键的真实值。

image.png


使用列表、字典作为字典的值

格式

dict={ key1:(key11:value,key12:value) ,
key2:(key21:value,key22:value)
}


访问字典值得格式(以第一个键为例):

dict[key1][key11]


实际例子如下所示:

#encoding=utf-8 
print '中国' 
#字典的一键多值 
print'方案一 list作为dict的值 值允许重复'   
d1={} 
key=1 
value=2 
d1.setdefault(key,[]).append(value) 
value=2 
d1.setdefault(key,[]).append(value) 
print d1 
#获取值 
print '方案一 获取值' 
print list(d1[key]) 
print '方案一 删除值,会留下一个空列表' 
d1[key].remove(value) 
d1[key].remove(value) 
print d1  
print '方案一 检查是否还有一个值' 
print d1.get(key,[]) 
print '方案二 使用子字典作为dict的值 值不允许重复' 
d1={} 
key=1 
keyin=2 
value=11 
d1.setdefault(key,{})[keyin]=value 
keyin=2 
value=22 
d1.setdefault(key,{})[keyin]=value 
keyin=3 
value=33 
d1.setdefault(key,{})[keyin]=value 
print d1 
print '方案二 获取值' 
print list(d1[key]) 
print '方案二 删除值,会留下一个空列表' 
del d1[key][keyin] 
keyin=2 
del d1[key][keyin] 
print d1 
print '方案二 检查是否还有一个值' 
print d1.get(key,()) 
print '方案三 使用set作为dict的值 值不允许重复' 
d1={} 
key=1 
value=2 
d1.setdefault(key,set()).add(value) 
value=2 
d1.setdefault(key,set()).add(value) 
value=3 
d1.setdefault(key,set()).add(value) 
print d1 
print '方案三 获取值' 
print list(d1[key]) 
print '方案三 删除值,会留下一个空列表' 
d1[key].remove(value) 
value=2 
d1[key].remove(value) 
print d1  
print '方案三 检查是否还有一个值' 
print d1.get(key,())

打印结果:


中国

方案一 list作为dict的值 值允许重复

{1: [2, 2]}


获取值

[2, 2]

删除值,会留下一个空列表

{1: []}

检查是否还有一个值

[]


方案二 使用子字典作为dict的值 值不允许重复

{1: {2: 22, 3: 33}}

获取值

[2, 3]

删除值,会留下一个空列表

{1: {}}

检查是否还有一个值

{}


方案三 使用set作为dict的值 值不允许重复

{1: set([2, 3])}

获取值

[2, 3]

删除值,会留下一个空列表

{1: set([])}

检查是否还有一个值

set([])


相关文章
|
13天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
25 2
|
2月前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
23 1
|
4月前
|
存储 JSON 索引
一文让你彻底搞懂 Python 字典是怎么实现的
一文让你彻底搞懂 Python 字典是怎么实现的
74 13
|
3月前
|
存储 Java Serverless
【Python】字典
【Python】字典
42 1
|
3月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
53 0
|
3月前
|
存储 自然语言处理 数据库
Python字典操作实现文章敏感词检索
Python字典操作实现文章敏感词检索
42 0
|
3月前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
46 0
|
3月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
26 0
|
3月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (二)
Python操作:字符串--列表--元组--字典--运算符 (二)
28 0
|
4月前
|
存储 数据安全/隐私保护 Python
Python常用数据结构—字典
Python常用数据结构—字典
67 0

热门文章

最新文章