您当前的位置: 首页 >  Python

IT之一小佬

暂无认证

  • 2浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

IT之一小佬 发布时间:2021-01-18 22:49:42 ,浏览量:2

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

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():删除拥有指定键的元素

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

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

 popitem():从字典中删除最后一个键值对

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

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 = 'dgw'
if name not in dic.get('name'):
    print(f"{name} not in dic!")
else:
    print(f"{name} in dic!!!")


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

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() 方法向字典插入指定的项目。 这个指定项目可以是字典或可迭代对象。

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

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}')

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.1622s