字典

关于字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典对象的本质是,一个通过键值而非索引 存取的无序的、可迭代、可变的映射表。键必须互不相同。


字典 & 序列

  • 序列是以连续的整数为索引;字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。

创建

  • 字典的每个键值(key=>value)对用冒号 : 分割;
  • 键必须是唯一的,但值则不必。
  • 每个对之间用逗号, 分割;
  • 整个字典包括在花括号 {} 中,格式如下:
d = {key1 : value1, key2 : value2 }

# 空字典
d1 = {}

d2 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

# 向内存申请一空闲内存单元存储 { 'abc': 456 },并将变量名 dict1 指向此内存单元的首地址
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }


>>> type(dict)
<type 'dict'>

# 查看dict类型的定义
>>> help(dict)

# 查看dict类型的属性和方法
>>> dir(dict)

属性

相关内置函数:

函数 描述
len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典,以可打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
>>> d = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} 
>>> len(d) 
3
 
>>> str(d) 
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}

>>> type(dict) 
dict

访问

相关方法

函数 描述
key in dict 如果键在字典dict里返回true,否则返回false
d.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值
d.items() 以列表返回可遍历的(键, 值) 元组数组
d.keys() 返回一个迭代器,可以使用 list() 来转换为列表
d.values() 返回一个迭代器,可以使用 list() 来转换为列表
>>> d = { 'a': 1, 'b':2, 'c':3 }
>>> d['a']
1

# for循环 迭代
>>> for k in d:
            print('%s -> %s' % (k, d[k]))
a -> 1
b -> 2
c -> 3
 
>>> d.keys()
dict_keys(['a', 'b', 'c'])

>>> d.values()
dict_values([1, 2, 3])

>>> d.items()
dict_items([('a', 1), ('b', 2), ('c', 3)])

>>> d.get('d')  # 无 d,显示为空
   
>>> d.get('d', default='99')
... TypeError: get() takes no keyword arguments

>>> d.get('d', '99')  # 设置默认值
'99'

删除

  • 删除某个键值对
  • 删除这个字典

相关方法

函数 描述
d.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
d.update(dict2) 把字典dict2的键/值对更新到dict里
d.pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
d.popitem() 随机返回并删除字典中的最后一对键和值。
d.clear() 删除字典内所有元素
>>> d = { 'a': 1, 'b':2, 'c':3 }

>>> id(d)
140521338186000

>>> del d['a']
>>> d
{'b': 2, 'c': 3}

>>> id(d)
140521338186000 # 和上方一致

# 测试存在
# in 判断 字典 中是否包含指定键
>>> 'b' in d
True

>>> 2 in d
False

>>> del d
>>> d
... NameError: name 'd' is not defined
# 使用 clear 清空
>>> d = { 'a': 1, 'b':2, 'c':3 }
>>> d.clear()
>>> d
{}
>>> d = { 'a': 1, 'b':2, 'c':3 }

# 使用 pop 删除某键值对
>>> d.pop('a')
>>> d
{'b': 2, 'c': 3}

>>> d.pop('a')
... KeyError: 'a'
>>> d.pop('a',2)
2
  
>>> d
{'b': 2, 'c': 3}
 
>>> d.popitem()
('c', 3)

>>> d2 = {'d':4, 'e':5, 'f':6}
# 将 d2 插入到 d 中
>>> d.update(d2)
>>> d
{'b': 2, 'd': 4, 'e': 5, 'f': 6}

其他方法

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

函数 描述
d.copy() 返回一个字典的浅复制
d.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
原文地址:https://www.cnblogs.com/fldev/p/14370799.html