python字典用法(创建、添加、删除(del()、clear()、pop()、popitem())、修改、查找(get()、keys()、values()、items())、更新update、遍历)

        字典⾥⾯的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不⽀持下标,后期⽆论数据如何变化,只需要按照对应的键的名字查找数据即可。

1、创建字典的语法

字典特点:
  • 符号为⼤括号
  • 数据为键值对形式出现
  • 各个键值对之间⽤逗号隔开
# 有数据字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
# 空字典
dict2 = {}
dict3 = dict()
注意:⼀般称冒号前⾯的为键(key),简称k;冒号后⾯的为值(value),简称v。

2、字典常⻅操作

2.1 添加

写法:字典序列[key] = 值

注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
dict1['name'] = 'Rose'
# 结果:{'name': 'Rose', 'age': 20, 'gender': '男'}
print(dict1)
dict1['id'] = 110
# {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110}
print(dict1)
注意:字典为可变类型。

2.2 删除

del() / del 删除字典或删除字典中指定键值对。
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
del dict1['gender']  # 【若删除的k不存在,则报错】
# 结果:{'name': 'Tom', 'age': 20}
print(dict1)
clear(): 清空字典,删除字典中所有的元素
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
dict1.clear()
print(dict1) # {}

pop():删除字典中指定键所对应的值,并返回该值。

语法如下:

dict.pop(key[,default])

其中,key为要删除的键名,default为可选参数,表示如果字典中不存在指定键,则返回default的值。如果不指定default,则默认为None

示例代码1:

letter = {
    "A": "a",
    "B": "b",
    "C": "c"
}

pop_value = letter.pop('A')
print(pop_value)
print(letter)

运行结果:

示例代码2: 【字典中使用pop方法时必须传值】

letter = {
    "A": "a",
    "B": "b",
    "C": "c"
}

pop_value = letter.pop()  # 必须传值
print(pop_value)
print(letter)

运行结果:

示例代码3:【当删除的key不存在时会报错,需要传递default默认值】

letter = {
    "A": "a",
    "B": "b",
    "C": "c"
}

pop_value = letter.pop("D")
print(pop_value)
print(letter)

运行结果:

示例代码4:

letter = {
    "A": "a",
    "B": "b",
    "C": "c"
}

pop_value = letter.pop("D", 'd')
print(pop_value)
print(letter)

运行结果:

popitem():随机删除字典中的一个键值对(一般删除末尾键值对)并返回值。如果字典已经为空,却调用了此方法,就报出KeyError异常。

示例代码1:

letter = {
    "A": "a",
    "B": "b",
    "C": "c"
}

pop_value = letter.popitem()
print(pop_value)
print(letter)

运行结果:

示例代码2:

letter = {}

pop_value = letter.popitem()
print(pop_value)
print(letter)

运行结果:

2.3 修改

写法: 字典序列 [key] =
注意:如果key存在则修改这个key对应的值 ;如果key不存在则新增此键值对。

2.4 查找

2.4.1 key值查找     

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1['name']) # Tom
print(dict1['id']) # 报错
如果当前查找的key存在,则返回对应的值;否则则报错。

2.4.2 get()

字典序列.get(key, 默认值)

注意:如果当前查找的key不存在则返回第⼆个参数(默认值),如果省略第⼆个参数,则返回 None。

示例代码1:

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.get('name'))  # Tom
print(dict1.get('id', 110))  # 110
print(dict1.get('id'))  # None

示例代码2:   【注意:此时运行会报错 TypeError: argument of type 'NoneType' is not iterable】

dic = {'name': 'Tom', 'age': 20, 'gender': '男'}
dic2 = {}

name = 'dgw'
if name not in dic.get('name'):
    print(f"{name} not in dic!")
else:
    print(f"{name} in dic!!!")


if name not in dic2.get('name'):
    print(f"{name} not in dic2!")
else:
    print(f"{name} in dic2!!!")

运行结果:

        上述代码执行过程中,要注意字典查询为空的情况,为空时将会报错!所以写判断时首先要判断字典查询结果是否为空!如示例代码3所示。

示例代码3:

dic = {'name': 'Tom', 'age': 20, 'gender': '男'}
dic2 = {'name': 'Alice', 'age': 15}

name = 'dgw'
if name not in dic.get('name'):
    print(f"{name} not in dic!")
else:
    print(f"{name} in dic!!!")

if dic2.get('name') and name not in dic2.get('name'):
    print(f"{name} not in dic2!")
print(type(dic2.get('name')))
print('程序执行结束!!!')

运行结果:

2.4.3 keys()     【查找字典中的所有key,返回可迭代的对象】

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])

2.4.4 values()     【查找字典中的所有value,返回可迭代的对象】

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.values()) # dict_values(['Tom', 20, '男'])

2.4.5 items()    【查找字典中的所有的键值对,返回可迭代的对象,里面的数据为元组】

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.items()) # dict_items([('name', 'Tom'), ('age', 20), ('gender','男')])

2.5 更新

update() 方法向字典插入指定的项目。 这个指定项目可以是字典或可迭代对象。

示例代码1:

letter1 = {
    "A": "a",
    "B": "b",
    "C": "c"
}
letter2 = {
    "X": "x",
    "Y": "y",
    "Z": "z"
}

letter1.update(letter2)
print(letter1)

运行结果:

示例代码2:

letter1 = {
    "A": "a",
    "B": "b",
    "C": "c"
}
letter2 = {
    "X": "x"
}

letter1.update(letter2)
print(letter1)

运行结果:

示例代码3:

letter1 = {
    "A": "a",
    "B": "b",
    "C": "c"
}
letter2 = {
    "X": "x",
    "A": 'aa'
}

letter1.update(letter2)
print(letter1)

运行结果:

3字典的循环遍历

3.1 遍历字典的key

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for key in dict1.keys():
    print(key)

3.2 遍历字典的value

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for value in dict1.values():
    print(value)

3.3 遍历字典的元素

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for item in dict1.items():
    print(item)

3.4 遍历字典的键值对

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for key, value in dict1.items():
    print(f'{key} = {value}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值