首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python语法学习记录(10):dict使用方法简介

  • 25-03-03 18:02
  • 3185
  • 12831
blog.csdn.net

文章目录

  • 一、介绍
  • 二、字典初始化
    • 1、普通赋值方法
    • 2、元组初始化方法
  • 三、字典的引用遍历合并
  • 四、字典的浅复制
  • 五、字典删除

一、介绍

dict 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明:
下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性。

每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。
键是唯一的,字典只认最后一个赋的键值。
不允许同一个键出现两次。创建时如果同一个键被赋值两次

二、字典初始化

1、普通赋值方法

print("===="*5,"dict init")
dic1 = {'a': 100, 'b':'boy', 'c':['o', 'p', 'q']}
print(type(dic1))
print("dic1:",dic1)
#可以直接增加一个元素,如果同名,则会改变原来的key的元素的值
dic1['d'] = 'dog'
dic1['c'] = 111               # 更新 'c'
print("dic1:",dic1)
#键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
dic2 = {'a': 1}
print ("dic2: ", dic2)
dic2 = {('a'): 1}
print ("dic2: ", dic2)
dic2 = {('a','b'): 1}
print ("dic2: ", dic2)
#dic2 = {['a']: 1}   #error 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

2、元组初始化方法

print("===="*5,"touple init")
tuple1 = ('name', 'age', 'sex')
dict1 = dict.fromkeys(tuple1)
print ("新的字典为 : %s" %  str(dict1))
dict1 = dict.fromkeys(tuple1, 10)
print ("新的字典为 : %s" %  str(dict1))
dict1 = dict.fromkeys(tuple1, [1,2,3])
print ("新的字典为 : %s" %  str(dict1))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

[外链图片转存失败(img-NuyIuIIR-1567578804297)(https://raw.githubusercontent.com/ZhouziqunZZQZZQ/picBed/master/20190701233415.png)]

三、字典的引用遍历合并

print("===="*5,"key and value")
dic1 = {'a':1,'b':2,'c':3}
#输出所有的key
print("keys:",dic1.keys())
print(type(dic1.keys()))
#输出所有的value
print("values:",dic1.values())
print(type(dic1.values()))
#同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
print(dic1.get('a',"don not find"))
print(dic1.get('z',"don not find"))
print(dic1.get('z'))
print('a' in dic1)
#遍历
for k in dic1:
    print(dic1.get(k))
dic1 = {'a':1,'b':2,'c':3}
print ("a 键的值为 : %s" %  dic1.setdefault('a', 'ff'))
print ("d 键的值为 : %s" %  dic1.setdefault('d', 'ff'))
print ("新字典为:", dic1)
dic1 = {'a':1,'b':2,'c':3}
print (type(dic1.items()))
print ("Value : %s" %  dic1.items())
for i,j in dic1.items():
    print(i, ":\t", j)


#计算字典元素个数,即键的总数
dic1 = {'a':1,'b':2,'c':3}
print("len:",len(dic1))
#输出字典,以可打印的字符串表示。
dic1 = {'a':1,'b':2,'c':3}
print("str:",str(dic1))
#增加合并字典
dic1 = {'a':1,'b':2,'c':3}
dic2 = {'d':4,'e':5,'f':6}
dic1.update(dic2)   #不可以使用加法
print("dic1:",dic1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

四、字典的浅复制

#返回一个字典的浅复制
print("===="*5,"copy")
dic1 = {'a':1,'b':[2,3,4],'c':3}
dic2 = dic1          # 浅拷贝: 引用对象
dic3 = dic1.copy()   # 浅拷贝: 深拷贝: 父对象(一级目录),子对象(二级目录)不拷贝,还是引用
# 修改 data 数据
dic1['a']=100
dic1['b'].remove(2)
# 输出结果
print(dic1)
print(dic2)
print(dic3)#存在浅拷贝
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

五、字典删除

#删除
print("===="*5,"del")
dic1 = {'a':1,'b':2,'c':3}
dic2 = {'d':4,'e':5,'f':6}
dic3 = {'g':7,'h':8,'i':9}
dic2.clear() #清空字典 后为空字典  还属于有定义状态  删除字典内所有元素
print("dic2:",dic2)
print(type(dic2.keys()))
del dic3['g']
print("dic3:",dic3)#删除dic后属于没有定义状态会报错
del dic3
#print("dic3:",dic3)#删除dic后属于没有定义状态会报错
dic1 = {'a':1,'b':2,'c':3}
pop_obj=dic1.popitem()
print(pop_obj)   
print(dic1)
dic1 = {'a':1,'b':2,'c':3}
pop_obj=dic1.pop('a')
print(pop_obj)
print(dic1)
dic1 = {'a':1,'b':2,'c':3}
pop_obj=dic1.pop('d','none')
print(pop_obj)
print(dic1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树基础语法缩进规则416632 人正在系统学习中
注:本文转载自blog.csdn.net的呆呆象呆呆的文章"https://blog.csdn.net/qq_41554005/article/details/94383127"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top