Python---字典

作为一个Python初学者,我想通过写博客的方式来记录下来自己成长的过程,同时也分享一下自己学习到的知识。以下都是一个Python初学者对Python语言的一些浅见和个人理解。

#字典
‘’'字典是“键值对”的无序可变序列,字典中的每个元素都是一个"键值对",包含:“键对象"和"值对象”。
可以通过"键对象"实现快速获取、删除、更新对应的"值对象"。
字典中通过"键对象"找到对应的"值对象"。“键"是任意的不可变数据,比如:整数、浮点数、字符串、元组。
但是:列表、字典、集合这些可变对象,不能作为"键”,并且"键"不可重复。"值"可以是任意的数据,并且可重复
1.字典的创建
①通过{}来创建字典对象
②通过dict()来创建字典对象
③通过zip()创建字典对象
④通过fromkeys()创建值为空的字典

‘’’

#test1({})
a = {"name":"haha","age":18,"job":"student"}
print(a)

#test2(dict())
a = dict([("name","haha"),("age",18)])
print(a)

#test3(zip())
k = ["name","age","job"]
v = ["hah",18,"teacher"]
d = dict(zip(k,v))
print(d)

#test4(fromkeys())
a = dict.fromkeys(["name","age","job"])
print(a)

‘’'2.字典元素的访问
①通过[键]获得"值"。若键不存在,则抛出异常
②通过get()方法获取"值"。指定键不存在,返回None;也可以设定指定键不存在时默认的返回的对象
③items():列出所有的键值对
④keys():列出所有的键 values():列出所有的值
⑤len():键值对的个数
⑥检测一个键是否在字典中

‘’’

#初始化一个字典对象
a = {"name":"haha","age":18,"job":"student"}

#test1([键])
print(a["name"])
print(a["age"])

#test2(get())
print(a.get("name"))
print(a.get("sex"))
print(a.get("sex","男"))

#test3(items())
print(a.items())

#test4(keys() values())
print(a.keys())
print(a.values())

#test5(len())
print(len(a))

#test6(in)
print("name" in a)

‘’'3.字典元素的添加、修改、删除
①给字典新增键值对,如果键已经存在,则覆盖旧的键值对;如果键不存在,则新增键值对
②update():将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,
则直接覆盖
③del():删除字典中的元素 clear():删除所有键值对 pop():删除指定键值对,并返回对应的"值对象"
④popitem():随机删除和返回该键值对。

‘’’

#test1(添加)
a = {"name":"hah","age":18,"job":"student"}
print(a)
a["address"] = "hnay"
print(a)

#test2(update())
a = {"name":"haha","age":18,"job":"student"}
b = {"name":"xixi","money":100000,"sex":"男"}
a.update(b)
print(a)

#test3(del()  clear()  pop())
a = {"name":"haha","age":18,"job":"student"}
del(a["name"])
print(a)
b = a.pop("age")
print(b)
print(a)
a.clear()
print(a)

#test4(popitem())
a = {"name":"haha","age":18,"job":"student"}
b = a.popitem()
print(a)
print(b)

‘’'4.序列解包
序列解包可以让我们方便的对多个变量进行赋值
序列解包用于字典时,默认是对键进行操作;如果需要对键值对操作,则需要使用items();
如果需要对值进行操作,则需要使用values()

‘’’

#test
s = {"name":"haha","age":18,"job":"student"}
name,age,job = s   #对键进行操作
print(name)   
name,age,job = s.items()   #对键值对进行操作
print(name)
name,age,job = s.values()  #对值进行操作
print(name)

练习

#使用字典和列表打印表格数据
r1 = {"name":"小一","age":18,"salary":10000,"city":"北京"}
r2 = {"name":"小二","age":19,"salary":20000,"city":"上海"}
r3 = {"name":"小六","age":20,"salary":50000,"city":"南京"}

tb = [r1,r2,r3]

#获取第二行的人的薪资
print(tb[1].get("salary"))

#打印表中所有的薪资
for i in range(len(tb)):
    print(tb[i].get("salary"))

#打印表中所有数据
for i in range(len(tb)):
    print(tb[i].get("name"),tb[i].get("age"),tb[i].get("salary"),tb[i].get("city"))
python-docx模板是一个用于创建和编辑Word文档的Python模块。它依赖于两个库,python-docx用于读取、编写和创建子文档,jinja2用于管理插入到模板docx中的标签。使用python-docx-template模块,我们可以利用jinja2制作Word模板,并动态向模板中插入文字、图片、表格等内容。安装python-docx-template模块可以使用pip install python-docx-template命令进行安装。\[1\] 使用python-docx-template模块创建模板的基本思路是: 1. 使用jinja2语法制作Word模板,可以在模板中插入标签。 2. 使用python-docx-template模块读取模板文件。 3. 创建一个包含要插入到模板中的数据的字典。 4. 使用jinja2模块渲染模板,将数据插入到模板中。 5. 保存生成的Word文档。 例如,可以使用以下代码将一个图片插入到模板中: ``` from docxtpl import InlineImage, DocxTemplate from docx.shared import Mm # 打开docx文件 tpl = DocxTemplate('test.docx') # 要插入的数据信息 context = { 'template': 'Hello World!', 'myimage': InlineImage(tpl, 'happy.jpg', width=Mm(20)), } # 填充数据 tpl.render(context) # 保存文件 tpl.save('test_temp.docx') ``` 这段代码会将名为'test.docx'的模板文件中的'{{ template }}'和'{{ myimage }}'标签替换为相应的数据,并将生成的文档保存为'test_temp.docx'。\[3\] 除了插入图片,还可以使用类似的方法操作表格、插入文字等。具体的模板语法可以参考jinja2的文档。\[3\] #### 引用[.reference_title] - *1* *2* *3* [python操作word——python-docx和python-docx-template模块](https://blog.csdn.net/General_zy/article/details/125922126)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值