15.python 字典dict - python基础入门

前面的课程讲解了字符串str/列表list/元组tuple,还有最后一种比较重要的数据类型也需要介绍介绍,那就是python字典,俗称:dict.

python中的字典可与字符串/列表/元组不同,因为字典dict需要由两部分组成,分别是key和value,简称:键值对,下面具体讲解一下关于字典的特点:

1.由一个或者多个键值对构成,键值对的类型可以不相同也可以相同;

2.字典中的键值对需要写在{}中括号内部,键值对中的key和value用:隔开,键值对与键值对之间用逗号隔开;

3.字典是一个无序的集合;

4.字典中key具有唯一性;

定义一个字典:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com

@File:python_dict.py
@Time:2019/9/27 20:45

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""

dict1 = dict() # 定义一个空字典
print(dict1)
print(type(dict1)) # 输出字典类型 dict
print(len(dict1)) # 获取字典键值对数量

print("***"*20) # 小窍门:直接打印60 个 *
#字典可以有一个或者多个键值对构成,键值对与键值对之间使用逗号隔开
# "name" / "age" / "sing_gou" 是key
# "隔壁老王" / 42 / True 是value
dict2 = {"name":"隔壁老王", "age":42, "singe_dog":True}
print(dict2)
print(type(dict2)) # 输出字典类型 dict
print(len(dict2)) # 获取字典键值对数量

print("***"*20) # 小窍门:直接打印60 个 *
# 字典中出现了两个一样的key:"age",默认后面的value会覆盖前面的value
dict3 = {"name":"隔壁老王", "age":42, "singe_dog":True,"age":15}
print(dict3)

输出:

{}
<class ‘dict‘>
0
************************************************************
{‘name‘: ‘隔壁老王‘, ‘age‘: 42, ‘singe_dog‘: True}
<class ‘dict‘>
3
************************************************************
{‘name‘: ‘隔壁老王‘, ‘age‘: 15, ‘singe_dog‘: True}

注意:如果字典中出现相同的key值,只有最后一个key/value有效,前面相同的key/value会被覆盖.这就是字典dict所谓的唯一性.

在python开发过程中,对于字典使用最多的莫过于增删改查以及遍历,下面我们一一讲解:

一.字典dict增加数据

如果想要在字典中添加数据,直接赋值就可以,比较简单,跟上示例代码演示一波:

dict1 = dict() # 定义一个空字典
print(dict1) # 输出一个空的字典
dict1["name"] = "猿说python" # 添加键值对 "name":"猿说python" 到 dict1
dict1["url"] = "shuopython.com" # 添加键值对 "url":"shuopython.com" 到 dict1

print(len(dict1)) # 获取字典键值对数量
print(dict1) # 输出整个字典

输出结果:

{}
2
{‘name‘: ‘猿说python‘, ‘url‘: ‘shuopython.com‘}

二.字典dict删除数据

字典是无序的,每个键值对没有对应的索引值,这也是字典与字符串/列表/元祖的区别。删除字典中的数据,需要根据键值对中的key值来删除对应的键值对,删除使用 del 关键字,实例代码如下:

dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典
print(dict1) # 输出删除之前的字典

# 删除key等于"name"对应的键值对
del dict1["name"]
print(dict1)

# 删除key等于"age"对应的键值对
del dict1["age"]
print(dict1)

# 删除key等于"sing_dog"对应的键值对
del dict1["sing_dog"]
print(dict1)

输出结果:

{‘name‘: ‘zhangsan‘, ‘age‘: 38, ‘sing_dog‘: True}
{‘age‘: 38, ‘sing_dog‘: True}
{‘sing_dog‘: True}
{}

三.字典dict修改数据

字典是无序的,每个键值对没有对应的索引值,这也是字典与字符串/列表/元祖的区别。修改字典中的键值对数据,操作和删除数据一样,直接根据键值对中的key值操作即可,实例代码如下:

dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典
print(dict1) # 输出字典

# 修改key等于"name"对应的value
dict1["name"] = "隔壁老王"
print(dict1) # 输出字典

# 修改key等于"age"对应的value
dict1["age"] = 18
print(dict1) # 输出字典

# 修改key等于"sing_dog"对应的value
dict1["sing_dog"] = False
print(dict1) # 输出字典

输出结果:

{‘name‘: ‘zhangsan‘, ‘age‘: 38, ‘sing_dog‘: True}
{‘name‘: ‘隔壁老王‘, ‘age‘: 38, ‘sing_dog‘: True}
{‘name‘: ‘隔壁老王‘, ‘age‘: 18, ‘sing_dog‘: True}
{‘name‘: ‘隔壁老王‘, ‘age‘: 18, ‘sing_dog‘: False}

四.字典dict查询数据

字典是无序的,每个键值对没有对应的索引值,这也是字典与字符串/列表/元祖的区别。查询字典中的键值对数据,操作和删除数据/修改数据一样,直接根据键值对中的key值操作即可,实例代码如下:

dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典
print(dict1) # 输出字典

# 查询key等于"name"对应的value
print(dict1["name"])

# 查询key等于"age"对应的value
print(dict1["age"])

# 查询key等于"sing_dog"对应的value
print(dict1["sing_dog"])

输出结果:

{‘name‘: ‘zhangsan‘, ‘age‘: 38, ‘sing_dog‘: True}
zhangsan
38
True

五.字典dict常用函数

1.把两个字典合并到一个字典,使用函数update()将一个字典添加到另外一个字典的末尾;

2.清空字典,使用函数clear()清空字典;

示例代码如下:

dict1 = {"name":"zhangsan","age":38} # 定义一个字典
print(dict1) # 输出字典
dict2 = {"sing_dog":True} # 定义一个字典
print(dict2)

print("***"*20) # 小窍门:直接答应60个*
# update()函数:将一个字典添加到另外一个字典的末尾
dict1.update(dict2)
print(dict1) # 输出字典

print("***"*20) # 小窍门:直接答应60个*
# 情况字典dict1
dict1.clear()
print(dict1) # 空字典
# 情况字典dict2
dict2.clear()
print(dict2) # 空字典

输出效果:

{‘name‘: ‘zhangsan‘, ‘age‘: 38}
{‘sing_dog‘: True}
************************************************************
{‘name‘: ‘zhangsan‘, ‘age‘: 38, ‘sing_dog‘: True}
************************************************************
{}
{}

六.字典dict遍历

1.使用dict.items()方法遍历字典,该方法的返回值是一个元组,等价于遍历元组,示例代码如下:

dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典
print(dict1) # 输出字典

print("***"*20) # 小窍门:直接答应60个*
# dict.items()方法,返回元组数据,类似遍历元组操作
for x in dict1.items():
    print(x,type(x))

print("***" * 20)  # 小窍门:直接答应60个*
# dict.items()方法经典写法,直接获取key/values
for x,y in dict1.items():
    print(x,y)

输出结果:

{‘name‘: ‘zhangsan‘, ‘age‘: 38, ‘sing_dog‘: True, ‘height‘: ‘155cm‘}
************************************************************
(‘name‘, ‘zhangsan‘) <class ‘tuple‘>
(‘age‘, 38) <class ‘tuple‘>
(‘sing_dog‘, True) <class ‘tuple‘>
(‘height‘, ‘155cm‘) <class ‘tuple‘>
************************************************************
name zhangsan
age 38
sing_dog True
height 155cm

2.根据字典中key或者value遍历字典,代码如下:

dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典
print(dict1) # 输出字典

print("***"*20) # 小窍门:直接答应60个*
# 方法一:根据key值遍历
for key in dict1.keys():
    print(key ,dict1[key])  # dict1[key] 等价键值对中key对应的value

print("***"*20) # 小窍门:直接答应60个*
# 方法二:根据value值遍历
for value in dict1.values():
    print(value )

输出结果:

{‘name‘: ‘zhangsan‘, ‘age‘: 38, ‘sing_dog‘: True, ‘height‘: ‘155cm‘}
************************************************************
name zhangsan
age 38
sing_dog True
height 155cm
************************************************************
zhangsan
38
True
155cm

七.重点总结

1.注意字典的特点

2.注意字典/字符串/列表/元组的区别

3.注意字典的遍历方式

4.注意字典/字符串/列表/元组之间的相互转换

猜你喜欢:

1.python字符串(str)

2.python列表(list)

3.python元组(tuple)

转载请注明:猿说Python » python 字典dict

技术交流、商务合作请直接联系博主

扫码或搜索:猿说python

猿说python

微信公众号 扫一扫关注

原文地址:https://www.cnblogs.com/shuopython/p/11708214.html

时间: 2024-12-18 17:17:19

15.python 字典dict - python基础入门的相关文章

Python字典(dict)使用技巧

字典dict是Python中使用频率非常高的数据结构,关于它的使用,也有许多的小技巧,掌握这些小技巧会让你高效地的使用dict,也会让你的代码更简洁. 1.默认值 假设name_for_userid存放的是name和id的映射关系: name_for_userid = { 1: '张三', 2: '李四', 3: '王五', } 获取name_for_userid中的某一个id的name,最简单的方式: name_for_userid[1] '张三' 这种方式虽然简单,但有一个不便之处就是,如果

python 字典dict和列表list的读取速度问题, range合并

python 字典和列表的读取速度问题 最近在进行基因组数据处理的时候,需要读取较大数据(2.7G)存入字典中,然后对被处理数据进行字典key值的匹配,在被处理文件中每次读取一行进行处理后查找是否在字典的keys中,以下两段代码的效率差别非常大: 第一段: if(pos in fre_dist.keys()):newvalue= fre_dist[pos] 第二段: if(pos in fre_dist):newValue=fre_dist[pos] 在处理3万条数据时,第二段代码的速度是第一段

Python字典dict

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度.Python中的唯一一种映射类型. 举个例子,假设要根据同学的名字查找对应的成绩,如果用列表(list)实现,需要两个list: names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85] 给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取

Python 字典(dict)中元素的访问

访问python字典中元素的几种方式 一:通过“键值对”(key-value)访问: print(dict[key]) dict = {1: 1, 2: 'aa', 'D': 'ee', 'Ty': 45} print(dict['D']) 输出: ee dict.get(key,[default]) :default为可选项,用于指定当‘键’不存在时 返回一个默认值,如果省略,默认返回None dict = {1: 1, 2: 'aa', 'D': 'ee', 'Ty': 45} print(

python 字典dict

一.字典(dict)  1.字典 字典:用 {} 来表示, 键值对数据 {key:value}, 具有唯一性. 键:都必须是可哈希的,不可变的数据类型就可以当做字典中的键值,没有任何限制. 2.字典的增删改查 1增加 dic[键名] = value               新增,强制添加 dic.setdefault(key,value)   如果字典中存在就不进行操作,不存在就进行添加. 1 dic = {"k1":"v1","k2":&q

Python - 字典(dict)删除元素

字典(dict)删除元素, 可以选择两种方式, dict.pop(key)和del dict[key]. 代码 # -*- coding: utf-8 -*- def remove_key(d, key): r = dict(d) del r[key] return r x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} x.pop(1) print x x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} del x[1] print x x = {1: 2,

【Python】Java程序员学习Python(三)— 基础入门

一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的,可是很少有人能认真的从头到尾把文档或者帮助手册看一遍,毕竟太枯燥了,就像java api 文档一样,正确的用法当然是把它当做一个工具书,想到用什么,就去查,当然最好还是能大概看一遍,这样心中有个印象找东西也方便. 最权威的当然是官方文档,地址在:https://docs.python.org/3/

Python学习之路 - 基础入门

本系列文章使用的Python版本为3.6.2 使用开发工具为Pycharm2017 一.Python介绍 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. 目前Python主要应用领域: 云计算:云计算最火的语言, 典型应用Open

python 字典(dict)get方法应用

如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这里我们可以用字典做一个小游戏,假设用户在终端输入字符串:"1"或者是"2"或者是"3",返回对应的内容,如果是输入其他的,则返回"error" 这里有的朋友可能会用if elif else判断语句来操作,确实可以,但是比较繁琐.给大家推荐一个字典的get()方法非常