Python字典Dictionary

简介: Python字典Dictionary

Python字典Dictionary


特点:
1.可变容器模型;

2.存储任意类型对象;

3.key不一定唯一,如重复按最后出现的计算;

4.键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行

格式:{'k1':'v1','k2':'v2','k3':'v3'}


基本操作


定义一个字典

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
复制代码


输出

try:
    # 正常输出
    print("dict['Name']: ", dict['Name'])
    # 当key不存在时会抛出KeyError异常
    print("dict['Alice']: ", dict['Alice'])
except KeyError as e:
    print('您访问的'+str(e)+'key不存在')
复制代码


修改/添加

dict['Age'] = 8 # 修改键Age的值为8
print('修改Age后的字典内容 : {0}'.format(dict))
dict['School'] = "DPS School" # 添加新的数据到当前字典
print('添加School后的字典内容 : {0}'.format(dict))
del dict['Name'] # 删除键是'Name'的条目
print('删除Name后的字典内容 : {0}'.format(dict))
dict.clear()     # 清空词典所有条目
print('清空字典后的字典内容 : {0}'.format(dict))
del dict        # 删除词典
try:
    print('删除字典后的字典中Name内容 : {0}'.format(dict['Name']))
except TypeError as e:
    print(e)
复制代码


内置函数/方法

dict = {'Name': 'OSpoon', 'Age': 4, 'Class': 'Last'};
dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict2 = {'Name': 'Spoon', 'Age': 10, 'Class': 'Last'};
复制代码

1.内置函数
1.1字典元素个数 len(dict)
print('当前字典长度 : {0}'.format(len(dict)))
复制代码

1.2输出字典可打印的字符串 str(dict)
print('当前字典按Str输出 : {0}'.format(str(dict)))
复制代码

1.3变量类型 type(variable)
print('当前变量类型 : {0}'.format(type(dict)))
复制代码


2.内置方法

2.1 删除字典内所有元素 dict.clear()

2.2.1 对象之间赋值时是按引用传递的
dict = {'Name': 'OSpoon', 'Age': 4, 'Class': 'Last'};
dict2 = dict
dict.pop('Name')
print('原始dict id : {0}'.format(id(dict)))
print('赋值后dict id : {0}'.format(id(dict2)))
print('原始dict : {0}'.format(dict))
print('赋值后dictd : {0}'.format(dict2))
复制代码

2.2.2 copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象
dict = {'Name': ['zhangsan','lisi'], 'Age': 4, 'Class': 'Last'};
dict2 = dict.copy()
dict['Name'].remove('zhangsan')
print('原始dict id : {0}'.format(id(dict)))
print('浅拷贝后dict id : {0}'.format(id(dict2)))
print('原始dict : {0}'.format(dict))
print('浅拷贝后dict : {0}'.format(dict2))
复制代码

2.2.3 copy.deepcopy 深拷贝 拷贝对象及其子对象
from copy import deepcopy
dict = {'Name': ['zhangsan','lisi'], 'Age': 4, 'Class': 'Last'};
dict2 = deepcopy(dict)
dict['Name'].remove('zhangsan')
print('原始dict id : {0}'.format(id(dict)))
print('深拷贝后dict id : {0}'.format(id(dict2)))
print('原始dict : {0}'.format(dict))
print('深拷贝后dict : {0}'.format(dict2))
复制代码

2.3 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 dict.fromkeys(seq[, val])
seq = ('Google', 'Runoob', 'Taobao')
dict = dict.fromkeys(seq)
print("dict.fromkeys(seq[, val]) : %s" % str(dict))
dict = dict.fromkeys(seq, 10)
print("dict.fromkeys(seq[, val]) : %s" % str(dict))
复制代码

2.4 返回指定键的值,如果值不在字典中返回default值 dict.get(key, default=None)
dict = {'Name': 'OSpoon', 'Age': 4, 'Class': 'Last'}
print("dict.get(key, default=None) : %s" %  dict.get('Age'))
print("dict.get(key, default=None) : %s" %  dict.get('Sex', "Never"))
复制代码

2.5 以列表返回可遍历的(键, 值) 元组数组 dict.items()
dict= {'name': '菜鸟', 'alexa': 10000, 'url': 'www.runoob.com'}
print('dict.items() : {0}'.format(dict.items()))
# 遍历字典列表
for key,values in  dict.items():
    print(key,values)
复制代码

2.6 以列表返回一个字典所有的键 dict.keys()
print('dict.keys() : {0}'.format(dict.keys()))
复制代码

2.7 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default dict.setdefault(key, default=None)
dict= {'name': '菜鸟', 'alexa': 10000, 'url': 'www.runoob.com'}
dict.setdefault('Age', '10')
print('dict.setdefault(key, default=None) : {0}'.format(dict))
复制代码

2.8 把字典dict2的键/值对更新到dict里 dict.update(dict2)
dict= {'name': '菜鸟', 'alexa': 10000, 'url': 'www.runoob.com'}
dict2= {'name': '菜鸟大大', 'alexa': 20000, 'url': 'www.baidu.com'}
dict.update(dict2)
print('更新后的dict内容 : {0}'.format(dict))
复制代码

2.9 以列表返回字典中的所有值 dict.values()
dict= {'name': '菜鸟', 'alexa': 10000, 'url': 'www.runoob.com'}
print('dict.values() : {0}'.format(dict.values()))
复制代码

2.10 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 pop(key[,default])
dict= {'name': '菜鸟', 'alexa': 10000, 'url': 'www.runoob.com'}
print('dict.pop(key) : {0}'.format(dict.pop('name')))



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

推荐镜像

更多