字典

2021-10-09 23:16:37
admin
1582
最后编辑:admin 于 2024-02-14 17:10:58

字典是一系列键值对的集合,用花括号 {} 标识。值可以是任何类型。键与值之间用冒号 : 分割,键值对之间用逗号分割。字典的键必须是唯一的。

字典元素的键必须是可进行哈希值计算的对象, 通常是 数字 或者 字符串

而字典元素的值可以是任何类型的对象,包括 数字、字符串、列表、元组、字典、自定义类型等等均可。

varname = {
    key1:value1,
    key2:value2,
    key3:value3,
    ……
    }

最后一个键值对的下一行添加一个右花括号,并缩进4个空格。

字典的主要用途是通过关键字存储、提取值。用 del 可以删除键值对。用已存在的关键字存储值,与该关键字关联的旧值会被取代。通过不存在的键提取值,则会报错。

对字典执行 list(d) 操作,返回该字典中所有键的列表,按插入次序排列(如需排序,请使用 sorted(d))。检查字典里是否存在某个键,使用关键字 in。

与列表不同,字典是无序的,所以不能像列表那样切片。

操作字典

访问字典中的值:

person = {
    'name':'Jack',
    'age':20,
    }
print(person['name'])

添加新的键值对:

person = {
    'name':'Jack',
    'age':20,
    }
persion['addr'] = 'beijing'
persion['tel'] = '123456'

修改字典中的值:

person = {
    'name':'Jack',
    'age':20,
    }
person['name'] = 'Lucy'

删除字典里的键值对:

person = {
    'name':'Jack',
    'age':20,
    }
del person['age']

dict() 构造函数可以直接用键值对序列创建字典:

dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
# {'sape': 4139, 'guido': 4127, 'jack': 4098}

字典推导式可以用任意键值表达式创建字典:

{x: x**2 for x in (2, 4, 6)}
# {2: 4, 4: 16, 6: 36}

遍历字典

for-in 循环遍历字典中的所有键值对。遍历时,其实是先用字典的 items() 方法将字典转化为一个列表,每个元素都是一个键值对。然后本质上即为列表的遍历。

person = {
    'name':'Jack',
    'age':20,
    'addr':'beijing',
    }
for key, value in person.copy().items():    #声明两个变量存储键和值。
    print(f'key:{key}')
    print(f'value:{value}')

注:

字典名.items() 返回字典的所有键值对列表。

字典名.keys() 返回字典的所有键列表。

字典名.values() 返回字典的所有值列表。