欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python 序列类型4(字典Dictionary)

程序员文章站 2023-01-15 10:41:31
字典Dictionary字典是一种可变容器,可存储任意数据对象字典中存在键值对key->value 键值对用冒号分割,每个键值对用逗号分割。字典中的键是唯一的,值可以不唯一1 字典的创建与访问dict={} #创建一个空字典dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}print(dict)print(dict1)print(dict1['马云'])for key in dict1: print(dict1[key])运行结果如下{...

字典Dictionary

字典是一种可变容器,可存储任意数据对象
字典中存在键值对key->value 键值对用冒号分割,每个键值对用逗号分割。
字典中的键是唯一的,值可以不唯一

1 字典的创建与访问

dict={}  #创建一个空字典
dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}
print(dict)
print(dict1)
print(dict1['马云'])
for key in dict1:
    print(dict1[key])
运行结果如下
{}
{'马云': '阿里巴巴', '丁磊': '网易', '马化腾': '腾讯'}
阿里巴巴
阿里巴巴
网易
腾讯

注:当访问一个不存在的键值对时,报错keyError
字典的键是唯一的,当一个键出现多次时,最后出现的键值对会覆盖前面的键值对
如下:

dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯","马云":"乡村老师"}
print(dict1['马云'])
运行结果如下
乡村老师

2 字典的修改与添加

dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}
dict1['马云']='乡村教师'
dict1['张小龙']='微信'
print(dict1)
运行结果如下
{'马云': '乡村教师', '丁磊': '网易', '马化腾': '腾讯', '张小龙': '微信'}

3 字典的删除 del

单个键值对的删除

dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}
del dict1['丁磊']
print(dict1)
运行结果如下
{'马云': '阿里巴巴',  '马化腾': '腾讯', '张小龙': '微信'}

整个字典的删除 删除字典被回收后不可输出(删除不是清空dict.clear())

dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}
del dict1
print(dict1)
NameError: name 'dict1' is not defined

4 字典的内置方法

cmp(dict1, dict2) !python2.x下的内置比较方法 比较两个字典元素
operator.eq(dict1,dict2) !python3.下的内置比较方法 比较两个字典元素
len(dict) 计算字典元素个数
str(dict) 输出字典可打印的字符串表示
dict.clear() 删除字典内所有元素
dict.copy() 返回一个字典的浅复制
dict.fromkeys(seq[, val]) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
dict.has_key(key) 如果键在字典dict里返回true,否则返回false
dict.keys() 以列表返回一个字典所有的键
dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2) 把字典dict2的键/值对更新到dict里
dict.values() 以列表返回字典中的所有值
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
popitem() 返回并删除字典中的最后一对键和

该方法于菜鸟教程整理
4.1 比较两个字典元素
我这里使用的是python3

import operator
dict1={'a':'A','b':'B','c':'C'}
dict2={'A':'a','B':'b','C':'c'}
print(operator.eq(dict1,dict2))
运行结果如下
False

4.2 dict.clear() 删除字典内所有元素

dict1={'a':'A','b':'B','c':'C'}
dict1.clear()  #不能直接输出dict1.clear() 否则返回None
print(dict1)
运行结果如下
{}

4.3 dict.copy() 返回一个字典的浅复制
深复制与浅复制 点击这里查看详情

dict1={'a':'A','b':'B','c':'C'}
dict2=dict1.copy()
print(dict2)
运行结果如下
{'a': 'A', 'b': 'B', 'c': 'C'}

4.4 dict.fromkeys(seq[, val]) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
初始值的批量导入

list1=('a','b','c','d')
lsit2=('A','B','C','D')
dict1=dict.fromkeys(list1)  #创建一个值为空的字典
dict2=dict.fromkeys(list1,'Test')  #创建一个所有键对应的值为Test的字典
print(dict1)
print(dict2)

运行结果如下
{'a': None, 'b': None, 'c': None, 'd': None}
{'a': 'Test', 'b': 'Test', 'c': 'Test', 'd': 'Test'}

4.5 dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值

dict3={'a':'A','b':'B','c':'C'}
print(dict3.get('E',"该键值对不存在"))  
运行结果如下
该键值对不存在

4.6 dict.values() 以列表返回字典中的所有值 dict.values() 以列表返回字典中的所有值

dict3={'a':'A','b':'B','c':'C'}
print(dict3.keys())
print(dict3.values())
运行结果如下
dict_keys(['a', 'b', 'c'])
dict_values(['A', 'B', 'C'])

4.7 pop()popitem()
pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
popitem() 返回并删除字典中的最后一对键和值

dict3={'a':'A','b':'B','c':'C'}
print(dict3.pop('a'))
print(dict3)
print(dict3.popitem())
print(dict3)
A
{'b': 'B', 'c': 'C'}
('c', 'C')
{'b': 'B'}

本文地址:https://blog.csdn.net/weixin_43747389/article/details/107401727