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([])


相关文章
|
8月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
463 2
|
8月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1429 1
|
9月前
|
存储 JSON 数据管理
Python字典:高效数据管理的瑞士军刀
Python字典基于哈希表实现,提供接近O(1)的高效查找,支持增删改查、遍历、合并等丰富操作,广泛应用于计数、缓存、配置管理及JSON处理。其灵活性与性能使其成为数据处理的核心工具。
735 0
|
9月前
|
存储 缓存 安全
Python字典:从入门到精通的实用指南
Python字典如瑞士军刀般强大,以键值对实现高效数据存储与查找,广泛应用于配置管理、缓存、统计等场景。本文详解字典基础、进阶技巧、实战应用与常见陷阱,助你掌握这一核心数据结构,写出更高效、优雅的Python代码。
257 0
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
1114 1
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
712 2
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
379 1
|
存储 Java Serverless
【Python】字典
【Python】字典
209 1
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
553 0
|
存储 自然语言处理 数据库
Python字典操作实现文章敏感词检索
Python字典操作实现文章敏感词检索
469 0

推荐镜像

更多