Python字典(Dictionary)
Python中字典与类表类似,也是可变序列,不过与列表不同,他是无序的可变序列,保存的内容是以
键 - 值对
的形式存放的。类似我们的新华字典,他可以把拼音和汉字关联起来,通过音节表可以快速的找到想要的字。新华字典中的音节相当于(key),而对应的汉字,相当于值(value)。键是唯一的,而值可以有多个。
示例代码:
dictionary = {"key1": "value1", "key2": "value2".....}
分析:
- key:表示元素的键,必须是唯一的并且不可变,可以是字符串、数字或元组等
- value:表示值,可以是任何类型数据,不是唯一的。
字典的创建和删除
示例代码:
dicts = {"name": "张三", "sex": "男", "age": 18}
print(dicts)
执行结果:
{"name": "张三", "sex": "男", "age": 18}
创建空字典:
dictionary = {}
或
dictionary = dict()
将列表合并为字典
dictionary = dict(zip(list1,list2))
dictionary:字典的名称
zip()函数:用于将多个列表或元组对应的位置的元素组合为元组,并返回白喊这些内容的zip对象,如果想获取元组,可以将zip对象使用tuple()函数转换为这个元组;如果想获取列表,则可以使用list()函数将其转换为列表。
示例代码:
name = ["小王", "小明", "小张"]
class1 =["一班", "二班", "三班"]
dictionary = dict(zip(name,class1))
print(dictionary)
执行结果:
{'小王': '一班', '小明': '二班', '小张': '三班'}
通过给定的"键-值队:创建字典
示例代码:
dictionary = dict(张三="水平座", 李四="射手座")
print(dictionary)
执行结果:
{'张三': '水平座', '李四': '射手座'}
创建值为空的字典
示例代码:
name = ["张三", "李四"]
dictionary = dict.fromkeys(name)
print(dictionary)
执行结果:
{'张三': None, '李四': None}
通过元组和列表创建字典
示例代码:
name = ("张三", "李四")
age = [18, 20]
dictionary = {name:age}
print(dictionary)
执行结果:
{('张三', '李四'): [18, 20]}
注意两个对象都为列表会报错:
name = ["张三", "李四"]
age = [18, 20]
dictionary = {name:age}
print(dictionary)
执行结果:
Traceback (most recent call last):
File "D:/xuexi/python/Demo.py", line 3, in <module>
dictionary = {name:age}
TypeError: unhashable type: 'list'
删除字典
同列表与元组一样使用del
删除字典
示例代码:
name = {"张三": 18, "李四": 20}
print(name)
del name
print(name)
执行结果:
Traceback (most recent call last):
{'张三': 18, '李四': 20}
File "D:/xuexi/python/Demo.py", line 4, in <module>
print(name)
NameError: name 'name' is not defined
访问字典
直接指定key
访问
示例代码:
name = {"张三": 18, "李四": 20}
print(name["李四"])
执行结果:
20
使用get()方法访问
示例代码:
name = {"张三": 18, "李四": 20}
print(name.get("李四"))
执行结果:
20
key不存在出现报错解决办法
如果key不存在会出现KeyError: 'value'
报错,下面提供两个解决方式:
*使用3元运算符判断key是否存在
使用dictionary[value] if value in dictionary else "自定义不存在返回值"
,如果value在字典中则返回value如果不存在返回自定义值。
示例代码:
name = {"张三": 18, "李四": 20}
def dicts(value, dictionary=name): # dictionary默认为name可不传参
"""需要一个判断的 值 和一个被判断的字典,判断一字典是否有需要的值,如果有将返回该值,不存在返回'字典没有此人'"""
return dictionary[value] if value in dictionary else "字典没有此人"
print(dicts("张三"))
print("----------")
print(dicts("王五", name))
执行结果:
18
----------
字典没有此人
使用上面用到的get()方法解决
dictionary.get(key,default)
dictionary:字典名称
key:需要查找的key
default:如果当指定的key不存在返回的值(默认返回None)
示例代码:
name = {"张三": 18, "李四": 20}
print(name.get("张三"))
print("----------")
print(name.get("李", "key不存在"))
执行结果:
18
----------
key不存在
实践代码
dictionary1 = {"张三": "男", "小红": "女"}
dictionary2 = {"男": "帅", "女": "美"}
print("小红的性别是:", dictionary1.get("小红"))
print("她的特点是:", dictionary2.get(dictionary1.get("小红")))
执行结果
小红的性别是: 女
她的特点是: 美
遍历字典
使用items()
加for循环
示例代码1:
dictionary1 = {"张三": "男", "小红": "女"}
for i in dictionary1.items():
print(i)
执行结果:
('张三', '男')
('小红', '女')
示例代码2:
dictionary1 = {"张三": "男", "小红": "女"}
for i, j in dictionary1.items():
print(i, "的性别是:", j)
执行结果:
张三 的性别是: 男
小红 的性别是: 女
添加、修改删除字典元素
添加元素
示例代码:
dictionary1 = {"张三": "男", "小红": "女"}
dictionary1["王二"] = "男"
print(dictionary1)
执行结果:
{'张三': '男', '小红': '女', '王二': '男'}
注意:
当指定的key已存在字典中,将会替换key而不是添加一个key
删除字典
示例代码:
dictionary1 = {"张三": "男", "小红": "女"}
del dictionary1["张三"] #删除一个元素
print(dictionary1)
执行结果:
{'小红': '女'}
字典推导式
示例代码1:
import random
randomdict = {i:random.randint(10, 100) for i in range(1, 5)} # 创建一个4个key的字典,value取值范围10到100随机4个
print(randomdict)
执行结果:
{1: 30, 2: 60, 3: 19, 4: 65}
示例代码2:
list1 = ["小张", "小红"]
list2 = ["男", "女"]
dictionary = {i: j + "生" for i, j in zip(list1, list2)}
print(dictionary)
执行结果:
{'小张': '男生', '小红': '女生'}
Python字典(Dictionary)的更多相关文章
- Python 字典(Dictionary)操作详解
Python 字典(Dictionary)的详细操作方法. Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字 ...
- Python 字典(Dictionary) get()方法
描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 ...
- Python 字典(Dictionary) setdefault()方法
描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: ...
- Python 字典(Dictionary) has_key()方法
描述 Python 字典(Dictionary) has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false. 语法 has_key()方法语法:dic ...
- Python 字典(Dictionary) values()方法
描述 Python 字典(Dictionary) values() 函数以列表返回字典中的所有值. 语法 values()方法语法: dict.values() 参数 NA. 返回值 返回字典中的所有 ...
- Python 字典(Dictionary) keys()方法
Python 字典(Dictionary) keys() 函数以列表返回一个字典所有的键. 语法 keys()方法语法: dict.keys() 参数 NA. 返回值 返回一个字典所有的键. 实例 以 ...
- Python字典(Dictionary)update()方法
原文连接:https://www.runoob.com/python/att-dictionary-update.html Python字典(dictionary)update()函数把字典dict2 ...
- Python 字典(Dictionary) items()方法
描述 Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组.高佣联盟 www.cgewang.com 语法 items()方法语法: dict.it ...
- Python 字典(Dictionary) copy()方法
描述 Python 字典(Dictionary) copy() 函数返回一个字典的浅复制.高佣联盟 www.cgewang.com 语法 copy()方法语法: dict.copy() 参数 NA. ...
- Python 字典(Dictionary) clear()方法
Python 字典(Dictionary) clear()方法 描述 Python 字典(Dictionary) clear() 函数用于删除字典内所有元素.高佣联盟 www.cgewang.com ...
随机推荐
- mysql 案例 ~ 函数汇总
一 简介:通过perf分析活跃的mysql系统函数 二 函数简介 1 buf_calc_page_new_checksum 作用 确认页是否损坏 在buf_calc_page_new_checksu ...
- 域scope 介绍,及查找数据
书中介绍<jsp:useBean> 中属性 scope: <%@ page language="java" pageEncoding="UTF-8& ...
- Springboot配置时间格式
方法一: 可以在apllication.property加入下面配置就可以 #时间戳统一转换 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring ...
- 20165237 2017-2018-2 《Java程序设计》第4周学习总结
20165237 2017-2018-2 <Java程序设计>第4周学习总结 教材学习内容总结 1.子类只能有一个父类,父类可以有多个子类. 2.子类继承父类的成员变量和方法. 3.开闭原 ...
- EM算法(坐标上升算法)
原文地址:https://www.cnblogs.com/to-creat/p/6075322.html 机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊,我们一 ...
- CVE-2019-0797漏洞:Windows操作系统中的新零日在攻击中被利用
https://securelist.com/cve-2019-0797-zero-day-vulnerability/89885/ 前言 在2019年2月,卡巴实验室的自动漏洞防护(AEP)系统检测 ...
- Python3-lamba表达式、zip函数
lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 == : name = 'wupeiqi' else: name = 'alex' ...
- 【翻译】Chemkin - Chapter 1
[这段文字是2013年3月翻译的,整理老文档时发现就拿出来,提醒我们:任何试图翻译英文手册的尝试都是徒劳的] 第一章 介绍 Chemkin理论手册提供了一个对关系和公式的宽泛的概览,这些关系和公式 ...
- Openssl与私有CA搭建
转自:http://www.tuicool.com/articles/aURnim 随着网络技术的发展.internet的全球化,信息共享程度被进一步提高,各种基于互联网的应用如电子政务.电子商务日益 ...
- Tomcat服务的安装及配置
在进行Java Web开发时必须有Web服务器的支持,常用的Web服务器便是Tomcat,本文主要介绍Tomcat的安装和配置.客户端通过Web浏览器发送一个基于HTTP协议的请求到服务器上后,服务器 ...