1. 什么是字典

{'name': '汪峰', 'age': 18} '键':'值' 别的语言键值对数据

键: 必须是可哈希(不可变的数据类型),并且是唯一的

值: 任意

可以保存任意类型的数据

字典是无序的

python3.6版本以上,默认定义了顺序,python3.5以下是随机显示

不能进⾏切片⼯作. 它只能通过key来获取dict中的数据

字典是可变的

2. 字典能干什么

字典可以存储大量数据,字典比列表还要大

字典在查找值的时候很方便快速

字典能够将数据进行关联

有明确对应关系的时候推荐使用字典,字典一定要整明白,很重要

目前所学的字典是不能转换的

缺点:

字典比较消耗内存 最常用的:字符串 列表 字典

3. 字典怎么用: 增、删、改、查

3.1 增

方法一: 直接增

dic["键"] = "值"

例题:

dic['name'] = '汪峰'

dic['age'] = 18

print(dic)

结果:

{'name': '汪峰', 'age': 18}

方法二:setdefault() 无则添加,有则不变

先去字典查看要添加的键存不存在

如果字典中存在就不添加,反之添加

dic.setdefault("键","值")

例题:

s1 = dic.setdefault('王菲')

# 输出结果

# {'王菲': None}

dic.setdefault('a','aaa')

print(dic)

一句话总结

dic["键"] = "值"

dic.setdefault("键","值") # 键不存在就添加,存在就不填加.

3.2 删

没有remove

方法一:pop('键') 通过键删除,具有返回值,返回的是被删除的值

pop("键")

方法二: del dic 删除整个字典

del dic

方法三: del dic['键'] 删除指定的键值对

del dic["键"]

方法四: dic.clear() 清空 删除整个字典中的键值对

dic.clear()

一句话总结

pop("键")

del dic["键"]

dic.clear() 清空

3.3 改

方法一: dic["键"] = "值" 直接改

dic["键"] = "值"

例题:

dic = {'a':'b','b':'c'}

dic['b'] = '这是新值' 有则改之无则添加

方法二: update({'键':值,'键':值})

update后面括号里面的级别高,会被前面的中相同的key对应的值覆盖

没有的话会填加

dic.update({"a":1,"b":1})

一句话总结

dic["键"] = "值"

dic.update({"a":1,"b":1})

3.4 查

字典的查询只能通过键获取值,不能通过值获取键

方法一: get('键','可以自己指定内容') 不存在返回的是None获取值的时候可以指定返回的内容,键不存在的时候不报错

例题:

dic = {"a":1}

dic["a"] += 5 # 给键a的值加5

dic.get("a") # 获取a的值

print(dic)

'''

输出结果

{'a': 6}

'''

方法二: dic["键"] 获取值的时候可以指定返回的内容,键不存在的时候就报错

例题:

dic = {1:2,"a":"a1"}

print(dic["c"])

'''

输出结果

报错,没有这个键

'''

方法三: dic.setdefault("键")

例题:

dic = {"a":1}

b = dic.setdefault('a')

print(b)

'''

输出结果

1

'''

一句话总结

dic["键"]

get('键','可以自己指定内容')

dic.setdefault("键")

3.5 其他的方法

for循环-获取字典的键的两种方法

方法一:

for k in dic:

print(k,dic[k]) #这里需要在打印的时候获取k的值

例题:

dic = {1:2,"a":"a1"}

for i in dic: # for循环字典的时候打印的是字典的键

print(i,dic[i])

'''

输出结果

1

a

'''

方法二:

for k in dic.keys():

print(k) # 这里在打印的时候不要指定

例题:

dic = {1:2,"a":"a1"}

for v in dic.keys():

print(v)

'''

输出结果

1

a

'''

三种模式:

dic.keys() -- 返回的是一个高仿列表 -- 没有索引

dic.values() -- 返回的是一个高仿列表 -- 没有索引

dic.items() -- 返回的是一个高仿列表,列表里存放的是元组类型元组第一个是键,第二个元素是值

3.6 解构

方法:

a,b = b,a --- 交换的是指向

a,b = 1,2

a,b = (45,6)

a,b = [1,4]

a,b = {"s":1,"a":1} # 字典拆包后的结果是键赋值给了a和b的变量

例题:

a = 1

b = 2

print("is a",id(a))

print("is b",id(b))

a,b = b,a

print("is a",id(a))

print("is b",id(b))

a,_,c = "你好啊"

print(a,c)

# 结果:你啊

a,b = ("1","2")

print(a,b)

# 结果:1,2

a,b = ["4","5"]

print(a,b)

# 结果:4,5

a,b = {"a":1,"b":2,}

print(a,b)

# 结果a b

3.7 enumerate() 枚举

给你要迭代对象,加一个序号 默认是从0开始,可以自己指定

例题:

li = [1,2,3,4,54]

for i,k in enumerate(li): # enumerate 第二个参数默认不写就是0 -- 枚举

print(i,k)

'''

输出结果

0 1

1 2

2 3

3 4

4 54

'''

练习题:

题目: 有字典dic = {"电脑":15000,"手机":8000,"耳机":4000,"老婆":1111},现需求是显示如下列表:

1 电脑

2 手机

3 耳机

4 老婆

方法一:

dic = {"电脑":15000,"手机":8000,"耳机":4000,"老婆":1111}

count = 1

for i in dic:

print(count,i)

count += 1

方法二:

for k,v in dic.enumerate(dic): # enumerate默认添加的序号从0开始,正好是索引的那个值

print(k+1,v)

'''

输出结果

1 电脑

2 手机

3 耳机

4 老婆

'''

3.8 字典的嵌套:

查找的字典的嵌套时,按照键去一层一层的查找

例题:

dic = {

101:{1:["周杰伦","林俊杰"],2:{"汪峰":["国际章",{"前妻1":["熊大","熊二"]},

{"前妻2":["葫芦娃","木吒"]}]}},

102:{1:["李小龙","吴京","李连杰"],2:{"谢霆锋":["张柏芝","王菲"]},

3:["alex","wusir","大象","奇奇"]},

103:{1:["郭美美","干爹"],2:{"王宝强":{"马蓉":"宋哲"}}},

201:{1:["凹凸曼","皮卡丘"],2:{"朱怼怼":{"杨幂":"刘恺威"}}}

}

1. 找:葫芦娃

print(dic[101][2]["汪峰"][2]["前妻2"][0])

2. 找:大象

print(dic[102][3][2])

3. 找:宋哲

print(dic[103][2]["王宝强"]["马蓉"])

python中dic_python之dic {字典}(重要指数*****)相关推荐

  1. Python中集合set和字典dict的用法区别

    Python中集合set和字典dict的用法区别 核心知识点 Python列表(list).元组(tuple).字典(dict)和集合(set)详解 Python set集合详解 1. Python创 ...

  2. python中采用字典建立统,Python中使用Counter进行字典创建以及key数量统计的方法...

    这里的Counter是指collections中的Counter,通过Counter可以实现字典的创建以及字典key出现频次的统计.然而,使用的时候还是有一点需要注意的小事项. 使用Counter创建 ...

  3. python中集合set,字典dict和列表list的区别以及用法

    python中set代表集合,list代表列表,dict代表字典 set和dict的区别在于,dict是存储key-value,每一个key都是唯一的,set相对于dict存储的是key,且key是唯 ...

  4. python中字典和json的区别_详解python中的json和字典dict

    定义 python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转.既然都是key-value格式,为啥还需要进行格式 ...

  5. python中遍历列表和字典的方法

    一般来说,在python中使用遍历是非常简单的,只要通过for循环就可以了,但是还是有一些技巧可以使用. 列表的遍历 方法一:通过for循环 li = [i for i in range(10)] f ...

  6. Python 中的“二维”字典 (two-dimension dictionary)

    Python 中的dict可以实现迅速查找.那么有没有像数组有二维数组一样,有二维的字典呢?比如我需要对两个关键词进行查找的时候.2D dict 可以通过 dict_2d = {'a': {'a': ...

  7. Python 中的“多维”字典 (multi-dimension dictionary)

    字典 (dictionary) Python 中的dict可以实现迅速查找.那么有没有像数组有二维数组一样,有二维的字典呢?比如我需要对两个关键词进行查找的时候.2D dict 可以通过 dict_2 ...

  8. python中item是什么意思中文-Python中使用item()遍历字典

    Python中通常使用for...in遍历字典,本文使用item()方法遍历字典. item() item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回. DEMO 代 ...

  9. 总结几个Python中常见的遍历字典的方法

    在Python中遍历字典中的key和value是比较常见的操作,这篇文章中将会总结几个常用的遍历方式 方法一:通过遍历key值遍历字典 my_dict = {"小明":80,&qu ...

最新文章

  1. 如何在 GPU 上优化卷积
  2. php开发用户登录模块,使用CodeIgniter开发用户登录注册模块
  3. OpenCV 均值滤波
  4. power bi可视化表_如何使用Power BI可视化数据?
  5. C# 实现HTTP不同方法的请求示例
  6. 前端学习(1208):vue常用特性
  7. 竞争者都是 飞鸽传书 高手
  8. vue 地图使用navigator_9 个实验 + 3 个项目,带你入门 Vue.js 3 !
  9. 计算机清理的作用,电脑也有自带的垃圾清理功能,甚至比众多清理软件更好用!...
  10. 淺談auto_ptr
  11. C# 找出实现某个接口的所有类
  12. Python pycharm(windows版本)部署spark环境
  13. vue、四级联动(省市区街道)
  14. 《诗经·陈风·月出》presentation
  15. 史上最全常见前端大厂面试知识点汇总【已过字节, 腾讯teg,华为,网易】
  16. 我和电赛的成长故事与总结#2019年全国大学生电子设计竞赛#
  17. Word秘籍:如何30秒做出精美的Word排版
  18. 河南省旅游服务中心信息中心备份及集成
  19. Gartner研究副总裁关于商务智能(BI)的三大趋势分析的讲话(录音翻译)
  20. 俞敏洪老师的回复真的太糟糕了!

热门文章

  1. 达梦数据库部署多实例
  2. Centos7 Minimal安装常用工具包
  3. Mybatis-plus 大数据量数据流式查询通用接口
  4. linux shell脚本 删除指定目录下文件夹(可指定文件夹名、时间)
  5. (vue基础试炼_04)使用组件改造TodoList
  6. css-第一个CSS
  7. java衍生作用_关于JAVA衍生出的一点想法
  8. Python 函数声明和调用 - Python零基础入门教程
  9. 全网最细之static关键字讲解
  10. linux默认的https端口,如何在Ubuntu 18.04 Bionic Beaver Linux上拒绝除HTTP端口80和HTTPS端口443之外的所有传入端口...