python 编程开发 —— 字典(dict)介绍

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。


笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888

1、字典(dict)

  字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ;在字典中, key 是不能重复,否则后来者会覆盖前者的 value。

格式:

d = {
    
    key1 : value1, key2 : value2, key3 : value3 }

  在 python 中 字典 的创建方式是很灵活的,下面举例介绍下其他的定义方式,

# 使用 {} 和 : 创建字典
>>> dict1 = {
    
    'a':1, 'b':2, 'c':3}
>>> dict1
{
    
    'a': 1, 'c': 3, 'b': 2}

# 使用 dict() 创建字典
>>> dict2 = dict((('a',1), ('b',2), ('c',3)))
>>> dict2
{
    
    'a': 1, 'c': 3, 'b': 2}

# 也可以通过具有映射关系的参数创建字典
>>> dict3 = dict(a=1, b=2, c=3)
>>> dict3
{
    
    'a': 1, 'c': 3, 'b': 2}

# key 值的位置,不能使用字符串的引号,否则报错
>>> dict4 = dict('a'=1, 'b'=2, 'c'=3)
SyntaxError: keyword can't be an expression

# 使用 zip 函数
>>> dict5 = dict(zip(['a', 'b', 'c'], [1,2,3]))
>>> dict5
{
    
    'a': 1, 'c': 3, 'b': 2}


>>> dict6 = dict([('a', 1), ('b', 2), ('c', 3)])
>>> dict6
{
    
    'a': 1, 'c': 3, 'b': 2}

>>> dict7 = dict({
    
    'a':1, 'b':2, 'c':3})
>>> dict7
{
    
    'a': 1, 'c': 3, 'b': 2}


#插入数值
>>> dict1['d'] = 4
>>> dict1
{
    
    'a': 1, 'c': 3, 'b': 2, 'd': 4}

#访问不存在的 key
>>> dict1['f']

Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    dict1['f']
KeyError: 'f'

# 删除键值对
>>> del dict1['d']
>>> dict1
{
    
    'a': 1, 'c': 3, 'b': 2}

# 删除映射表
>>> del dict1
>>> dict1    # 访问不存在的表,抛出异常

Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    dict1
NameError: name 'dict1' is not defined


# 通过 key 修改 value
>>> dict2
{
    
    'a': 1, 'c': 3, 'b': 2}
>>> dict2['b'] = 66
>>> dict2
{
    
    'a': 1, 'c': 3, 'b': 66}

# 判断某个 key 是否在 字典中
>>> 'a' in dict2
True
>>> 'f' not in dict2
True

# 清空字典
>>> dict2.clear()
>>> dict2
{
    
    }

注意事项:
1、键必须是唯一的,但值则不必。
2、值可以取任何数据类型,但键必须是不可变的,如字符串,数字。


python字典包含了以下内置方法:


函数 描述
len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典,以可打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
dict.clear() 删除字典内所有元素
dict.copy() 返回一个字典的浅复制
dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值
key in dict 如果键在字典dict里返回true,否则返回false
dict.items() 以列表返回可遍历的(键, 值) 元组数组
dict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2) 把字典dict2的键/值对更新到dict里
dict.values() 返回一个迭代器,可以使用 list() 来转换为列表
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
popitem() 随机返回并删除字典中的一对键和值

2、zip 内建函数

  zip函数也可以整合字典的键值对。

>>> k = [1,2,3]   # 定义 键(key) 列表
>>> v = ['a', 3.14, 'aaa']  # 定义 值(value) 列表
>>> d = dict(zip(k,v)) 
>>> d
{
    
    1: 'a', 2: 3.14, 3: 'aaa'}
>>> 

猜你喜欢

转载自blog.csdn.net/Aliven888/article/details/114646955