dictionary
(字典) 是 除列表以外 Python
之中 最灵活 的数据类型{}
定义dict
作为 Python 的关键字和内置函数,变量名不建议命名为 dict。,
分隔key
是索引value
是数据:
分隔ipython3
中定义一个 字典,例如:xiaoming = {}
xiaoming.
按下 TAB
键,ipython
会提示 字典 能够使用的函数如下:In [1]: xiaoming.
xiaoming.clear xiaoming.items xiaoming.setdefault
xiaoming.copy xiaoming.keys xiaoming.update
xiaoming.fromkeys xiaoming.pop xiaoming.values
xiaoming.get xiaoming.popitem
序号 | 分类 | 关键字 / 函数 / 方法 | 说明(dict为关键字,‘字典’为定义的具体字典) |
---|---|---|---|
1 | 查看 | 字典.['键'] | 通过键来获取对应的值,与列表通过索引取值类似,用[] :lihua_name['name'] |
key in 字典 | 如果键在字典里返回true,否则返回false | ||
dict.items(xiaoming) or 字典.items() | 以列表返回一个视图对象dict_items([('name', '小明'), ('age', 18), ('gender', True), ('height', 1.75)]) |
||
dict.keys(字典) | 以列表的形式返回该字典的键 | ||
字典.values() | 以列表的形式返回该字典的值 | ||
字典.get(key, default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 | ||
dict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default | ||
2 | 增加 | 字典['键'] = 18 | 通过键值相对应的方式来增加新内容 |
3 | 修改 | 字典['键'] = 数据 | 修改该键对应的值 |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 | ||
4 | 删除 | 字典.pop('键') | 删除该键值对,返回被删除的值 |
字典.popitem() | 返回并删除字典中的最后一对键和值 | ||
del 字典['键'] | 删除该键值对 | ||
字典.clear() | 清空该字典 | ||
del 字典 | 在内存中删除字典,删除后该字典不存在 | ||
5 | 统计 | len(字典) | 统计字典中键值对的数量 |
列表.count(数据) | 数据在列表中出现的次数 | ||
6 | 输出字典 | str(dict) | 输出字典,用可以打印的字符串表示 |
7 | 在原字典上的操作 | dict.copy(字典) or 字典.copy() | 返回一个字典的浅复制 |
dict.fromkeys(字典) or 字典.fromkeys | 创建一个新字典,以原字典中的键做新字典的键,val为字典所有键对应的初始值(None) |
xiaoming = {"name": "小明",
"age": 18,
"gender": True,
"height": 1.75}
# 变量k是每一次循环中,获取到的键值对的key
for k in xiaoming:
print("%s: %s" % (k, xiaoming[k]))
Out:
name: 小明
age: 18
gender: True
height: 1.75
提示:在实际开发中,由于字典中每一个键值对保存数据的类型是不同的,所以针对字典的循环遍历需求并不是很多
for in
遍历 字典card_list = [{"name": "张三",
"qq": "12345",
"phone": "110"},
{"name": "李四",
"qq": "54321",
"phone": "10086"}
]
for card_info in card_list:
print(card_info)
# 字典中保存的数据是无序的,列表中保存的数据是有序的
# 重复运行字典里的顺序会变,但是列表中两个字典的顺序不会变
Out:
{'name': '张三', 'qq': '12345', 'phone': '110'}
{'name': '李四', 'qq': '54321', 'phone': '10086'}