当前位置: 首页 > article >正文

07.Python基础4

目录

字典

1.概述

2.如何用

3.基础操作

3.1添加元素

3.2定位元素

3.3删除元素

3.4遍历元素

3.5散列

4.字典推导式


字典

1.概述

适合存储有对应关系的数据,例如表格的标题名与行数据

2.如何用

(1)定义:由一系列键值对组成的可变散列容器

(2)语法:字典名 = {键1:值,键2:值}

(3)案例:

dict_bjlz = {
 "name":"八角笼中","type":"剧情",
 "actor":"王宝强","index":690761,
 }
print(dict_bjlz)

3.基础操作

3.1添加元素

(1)作用:将键值对添加到字典中

(2)语法:字典名[键] = 值

(3)案例:

dict_bjlz = {
 "name":"八角笼中","type":"剧情"
}
dict_bjlz["actor"] = "王宝强"
dict_bjlz["index"] = 690761

print(dict_bjlz)

3.2定位元素

(1)作用:改变或读取字典中某个键对应的值

(2)语法:字典名[键] = 值 值 = 字典名[键]

(3)案例:

dict_bjlz = {
 "name":"八角笼中","type":"剧情"
}
dict_bjlz["actor"] = "王宝强"
dict_bjlz["index"] = 690761

print(dict_bjlz["name"])

print(dict_bjlz["index"])

(4)注意:键存在为修改,不存在为添加

3.3删除元素

(1)作用:通过键删除键值对

(2)语法:del 字典名[键]

(3)案例:

dict_bjlz = {
 "name":"八角笼中","type":"剧情"
}
dict_bjlz["actor"] = "王宝强"
dict_bjlz["index"] = 690761

del dict_bjlz["name"]
print(dict_bjlz)

(4)注意:列表删除时元素向前移动,字典删除时其他元素不移动

3.4遍历元素

所有键

(1)作用:获取字典中所有键

(2)语法:

for key in 字典名:

     变量key记录的是字典键

 案例:

dict_bjlz = {
 "name":"八角笼中","type":"剧情"
}
dict_bjlz["actor"] = "王宝强"
dict_bjlz["index"] = 690761

for item in dict_bjlz :
    print(item)

# result
name
type
actor
index

所有值

(1)作用:获取字典中所有值

(2)语法:

for value in 字典名.values():

     变量value记录的是字典值

(3)案例:

dict_bjlz = {
 "name":"八角笼中","type":"剧情"
}
dict_bjlz["actor"] = "王宝强"
dict_bjlz["index"] = 690761

for item in dict_bjlz.values() :
    print(item)

# result
八角笼中
剧情
王宝强
690761

所有键和值

(1)作用:获取字典中所有值

(2)语法:

for key,value in 字典名.items():

    变量key,value分别记录的是字典的键和值

(3)案例:

dict_bjlz = {
 "name":"八角笼中","type":"剧情"
}
dict_bjlz["actor"] = "王宝强"
dict_bjlz["index"] = 690761

for item in dict_bjlz.items() :
    print(item)

print(type(item))

# result
('name', '八角笼中')
('type', '剧情')
('actor', '王宝强')
('index', 690761)
<class 'tuple'>

3.5散列

(1)定义:通过哈希算法将键转换为对应存储位置的容器类型

(2)特点1:无需遍历,直接计算存储位置,速度最快

list_movie = [("八角笼中","剧情"),("消失的她","犯罪")]
for item in list_movie:

    if item[0] == "消失的她":
        print(item[1])
dict_movie = {"八角笼中":"剧情","消失的她":"犯罪"}
print(dict_movie["消失的她"])

特点2:键必须唯一且只能是不可变类型的数据

dict_movie = {"剧情":"八角笼中","剧情":"满江红"}
print(dict_movie) # {"剧情":"满江红"}
# TypeError: unhashable type: 'list'
dict_movie = {["王宝强","陈永胜"]:"八角笼中"}

(3)缺点:在内存中元素没有顺序且占用空间较大

4.字典推导式

(1)定义:通过简单的语法将可迭代对象转换为新字典

(2)作用:简化代码,避免了传统循环结构的繁琐,提高代码的可读性

(3)语法:

新字典 = [键:值 for 变量 in 可迭代对象]

新字典 = [键:值 for 变量 in 可迭代对象 if 条件]

(4)案例:将2个列表合并为一个字典

list_name = ["八角笼中","封神第1部","消失的她"]
list_pop = [921109,826748,189298]

list_movies={
    list_name[i]: list_pop[i] for i in range(len(list_name))
}

(5)适用条件:根据可迭代对象、构建新字典、过程够简单

(6)不适用:

# 不支持while
dict_new = {}
while True:
    item = input("请输入:")
    dict_new[item] = item * 2
 # 必须是空字典
dict_new = {5:25}
for num in range(5):
    dict_new[num] = num * 2
 # 不能有多余代码
dict_new = {}
for num in range(5):
    dict_new[num] = num * 2
print(num)

(7)练习:使用字典推导式,颠倒字典的键和值

dict_info = {
    "1001": "台湾",
    "1002": "陕西",
    "1003": "浙江",
    "1004": "广西",
}


dict_info_new = {v: k for k, v in dict_info.items()}
print(dict_info_new)


http://www.kler.cn/a/589307.html

相关文章:

  • Linux中安装MySQL
  • 我又又又又又又又更新了~~~纯手工编写C++画图,有注释~~~
  • 解决git fetch 成功后还是不能checkout到fetch分支
  • 深入理解嵌入式开发中的三个重要工具:零长度数组、container_of 和 typeof
  • QT编程之JSON处理
  • AI软件栈:推理框架(二)-Llama CPP1
  • Qt 窗口以及菜单栏介绍
  • embedding技术
  • Cascadeur 技术浅析(五):碰撞避免算法
  • 【python web】一文掌握 Flask 的基础用法
  • 黑龙江有多线IDC服务器托管机房吗?
  • 输入:0.5元/百万tokens(缓存命中)或2元(未命中) 输出:8元/百万tokens
  • vulhub/log4j2漏洞靶场----反弹shell
  • 【图片批量转换合并PDF】多个文件夹的图片以文件夹为单位批量合并成一个PDF,基于wpf的实现方案
  • Python爬虫:playwright的使用
  • python爬虫笔记(一)
  • 【MATLAB例程】AOA(到达角度)法,多个目标定位算法,三维空间、锚点数量自适应(附完整代码)
  • 01-1 音视频知识学习(音频)
  • QT入门笔记2
  • MySQL的基本使用