字典

Python中唯一内建的映射类型,每个元素都是一组键值对(key:value),其元素没有位置索引,键值之间用冒号连接

关于键和值

键:可以是任何不可修改类型的数据(不可重复)
值:可以是任何类型的数据
字典中键值对的数量:len()

字典操作

  1. 查找与特定键相关联的值:dictName[ key ]
  2. 修改数据:dictName[ key ] = value(若当前的键并不存在,则当前语句相当于创建了一组新的键值对)
  3. 删除:del命令(可以用于删除某个键值对,也可删除整个字典)
  4. 检查是否有某键: key in dictName (返回Boolean型数据)

字典方法

  1. keys():将键以可迭代的dict_keys对象形式返回
  2. values():将值以可迭代的dict_values对象形式返回
  3. items():将键值对以可迭代的dict_items对象形式返回
dict1 = {1:'a',2:'b',3:'c'}
list1 = list(dict1.keys())
list2 = list(dict1.values())
list3 = list(dict1.items())
print(list1)
print(list2)
print(list3)

运行结果:

python对键值对进行计算 python 键值_python对键值对进行计算

  1. setdefault(key,default):若搜索的字典包含要搜索的key,则返回对应的value,若找不到,则返回default的值
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.setdefault(1, 0))
print(dict1.setdefault(4, 0))

运行结果:

python对键值对进行计算 python 键值_python对键值对进行计算_02

  1. update():将另一个字典中所有的键值对一次性添加到当前字典中,若有相同的键,则以另一字典的值更新当前字典
dict1 = {1:'a',2:'b',3:'c'}
dict2 = {1:'zsj',4:'d',5:'e'}
print(dict1)
dict1.update(dict2)
print(dict1)

运行结果:

python对键值对进行计算 python 键值_数据_03

  1. clear():将字典中所有条目删除,变成空字典
dict1 = {1:'a',2:'b',3:'c'}
print(dict1)
dict1.clear()
print(dict1)

运行结果:

python对键值对进行计算 python 键值_python对键值对进行计算_04

  1. pop():弹出并删除键值对(弹出:返回对应的值)
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.pop(1))
print(dict1)

运行结果:

python对键值对进行计算 python 键值_python对键值对进行计算_05

  1. popitem():弹出一个元素
dict1 = {1:'a',2:'b',3:'c'}
for i in list(dict1.keys()):   
    #由于字典的长度在变化,所以需要使用list方法将字典的keys保存在一个列表中
    print(dict1.popitem())
    print(dict1)

运行结果:

python对键值对进行计算 python 键值_数据_06

  1. get():返回指定键对应的值(可以设置默认值)
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.get(1, '未找到'))
print(dict1.get(4,'未找到'))

运行结果:

python对键值对进行计算 python 键值_python_07

关于字典的遍历

  1. 用for循环遍历字典时,若in后只写了字典名称,则默认遍历字典的键
dict1 = {1:'a',2:'b',3:'c'}
for i in dict1:        #默认遍历字典的键
            print(i,dict1[i])

运行结果:

python对键值对进行计算 python 键值_元组_08

  1. 若想用for循环遍历字典的值,则使用values()方法
dict1 = {1:'a',2:'b',3:'c'}
for i in dict1.values():
            print(i)

运行结果:

python对键值对进行计算 python 键值_python_09


3.若想用for循环遍历键值对,则使用items()方法

字典与列表和元组之间的转换

  • 列表与字典之间的转换:
    字典转列表用list()
    列表无法转换成字典
  • 元组与列表之间的转换
    字典转元组用tuple()
    元组无法转换成字典