字典

1 字典的增加

(1)直接指定key、value,无则增加,有则修改。

dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic['hobby']='美女'
print(dic)
结果为:{'name': '韦小宝', 'age': 20, 'sex': '男', 'hobby': '美女'}

(2)dic.setdefaulte() 有key则不修改,无则添加。

dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.setdefault('身高',180)
print(dic)
结果为:{'name': '韦小宝', 'age': 20, 'sex': '男', '身高': 180}
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.setdefault('age',180)
print(dic)
结果为:{'name': '韦小宝', 'age': 20, 'sex': '男'}

2 字典的删除

(1)按照键值删除 dic.pop(),del dic[key],del删时字典里面的键时,如果键不存在会报错

dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.pop('name')
print(dic)
结果为:{'age': 20, 'sex': '男'}
del dic['age']
print(dic)
结果为:
{'name': '韦小宝', 'sex': ''}

(2) 如果dic.pop("n")里面的键不存在,则会报错。可指定默认返回值

dic={
'name':'韦小宝',
'age':20,
'sex':'',}
print(dic.pop("n"))
结果会报错:
Traceback (most recent call last):
File "E:/python/test.py", line 14, in <module>
print(dic.pop("n"))
KeyError: 'n'
指定默认返回值
print(dic.pop("n",'abcdf'))
输出为:
abcdf

(3)随机删除 dic.popitem()

字典popitem()方法作用是:随机返回并删除字典中的一对键和值(项)。

dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.popitem()
print(dic)
结果为:{'name': '韦小宝', 'age': 20}

Python3.5后版本后默认删除最后一组键值对

(4)清空字典 dic.clear()

dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.clear()
print(dic)
结果为:{}

3 字典的修改

(1)dic.update(k=v),有则修改,无则添加

dic1={
    "name":"乔峰",
    "age": 30,
    "job": "帮主"
}
dic1.update(gender="")
dic1.update(age=32)
print(dic1)
结果为:
{'name': '乔峰', 'age': 32, 'job': '帮主', 'gender': ''}

(2)将dic2中的内容覆盖添加至dic1,dic2不变。

复制代码
dic1={
    "name":"乔峰",
    "age": 30,
    "job": "帮主"
}
dic2={
    "name":"段誉",
    "hoby":"美女"
}
dic1.update(dic2)
print(dic1)
print(dic2)
复制代码
结果为:
{'name': '段誉', 'age': 30, 'job': '帮主', 'hoby': '美女'}
{'name': '段誉', 'hoby': '美女'}

4 字典的查找

(1)按照键值查找

dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
print(dic['name'])
结果为:韦小宝

(2)dic.get(),参数为键,如果键不存在,默认返回None,可指定返回值

dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
print(dic.get('age'))
结果为:20
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
print(dic.get('agei','没有。。。。'))
结果为:没有。。。。

(3)打印键和值,类似于列表的一个容器,没有索引。

复制代码
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
print(dic.keys())
print(dic.values())
结果为:
dict_keys(['name', 'age', 'sex'])
dict_values(['韦小宝', 20, '男'])
复制代码

(4)循环打印键或者值

复制代码
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
for i in dic.keys():
print(i)
结果为:
name
age
sex
复制代码

(5)同时输出键值

复制代码
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
for k,v in dic.items():
print(k,v)
结果为:
name 韦小宝
age 20
sex 男
复制代码

5 字典的嵌套

(1)给name_list增加一个值"姜维"

复制代码
dic={
'name_list]':['诸葛亮','庞统','司马懿',],
2:{
'leader':'刘备',
'age':'48',
}
}
dic['name_list]'].append('姜维')
print(dic)
结果为:{'name_list]': ['诸葛亮', '庞统', '司马懿', '姜维'], 2: {'leader': '刘备', 'age': '48'}}
复制代码

(2)给字典里边的2(字典)增加一个键值对"wife:孙尚香"

复制代码
dic={
'name_list]':['诸葛亮','庞统','司马懿',],
2:{
'leader':'刘备',
'age':'48',
}
}
dic[2]['wife']='孙尚香'
print(dic)
结果为:{'name_list]': ['诸葛亮', '庞统', '司马懿'], 2: {'leader': '刘备', 'age': '48', 'wife': '孙尚香'}}
复制代码

6 删除字典中键值包含"k"的键值对

复制代码
dic = {
'k1': 'v1',
'k2': 'v2', 'k3':'v3',
'name':'alex'
}
l1=[]
for i in dic:
if 'k' in i:
l1.append(i)
print(l1)
for i in l1:
del dic[i]
print(dic)
结果为:
['k1', 'k2', 'k3']
{'name': 'alex'}
复制代码

7 Python 字典 fromkeys() 函数

用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。

dic={}
dic=dic.fromkeys('abc',666)
print(dic)
dic=dic.fromkeys('abc',[])
print(dic)
结果为:
{'a': 666, 'b': 666, 'c': 666}
{'a': [], 'b': [], 'c': []}
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print ("新的字典为 : %s" % str(dict))
dict = dict.fromkeys(seq, 10)
print ("新的字典为 : %s" % str(dict))
结果为:
新的字典为 : {'name': None, 'age': None, 'sex': None}
新的字典为 : {'name': 10, 'age': 10, 'sex': 10}
posted @   Sunzz  阅读(141)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示