@danren-aa120
2019-08-20T01:44:39.000000Z
字数 1784
阅读 167
Python
字典是除列表外最灵活的变量数据类型。列表存储有序的数据集合,字典是无序的数据集合,它关心的是保存了哪些数据。列表中的元素可以是字典或元组,元组中的元素可以是字典或列表,字典中的键只能使用不可变类型,值可以是字典、列表或元组等。
字典用{}定义。使用键值对存储数据;键是索引名称,必须是唯一的;值是数据,键和值用“:”分隔;键值对之间用“,”号分隔,如
info_dict = {"name": "xiaoming",
"qq": "12345",
"phone": "10086"}
编程时,每个键值对要各自占有一行代码,出现字符串时都用双引号。
数字类型、字符串和元组为不可变类型,内存中的数据不允许被修改;字典和列表为可变类型,使用操作方法改变内容后,变量地址不变,但重新对变量整体赋值后,会影响变量在内存中的地址。
注意:字典中的键只能使用不可变类型,值可以是任意类型的数据。 Python中的hash()函数可以提取数据的特征码,即指纹,但只能针对不可变类型的数据。在字典中,会对key进行hash决定如何在内存中保存字典的数据。
- 针对字典的操作
操作大全参看https://www.cnblogs.com/panwenbin-logs/p/5497881.html
1取值:字典[key的名称],不能使用索引字典[?]
2增加、修改键值对
3删除键值对
4统计键值对数量
5合并字典
4清空
具体语法如下例所示:
xiaoming_dict = {"name": "xiaoming"}
# 取值
print(xiaoming_dict["name"])
# 新增键值对/修改
xiaoming_dict["age"] = 18 # 增加
xiaoming_dict["name"] = "xiaoxiaoming" # 修改
xiaoming_dict["shengao"] = 1.75 # 增加
# 删除
xiaoming_dict.pop("name")
print(xiaoming_dict)
# 统计键值对数量
print(len(xiaoming_dict))
# 合并字典
temp_dict = {"height": 1.75}
xiaoming_dict.update(temp_dict) # 如果包含有已存在的键,会更新数值
# 清空字典
xiaoming_dict.clear()
print(xiaoming_dict)
Python字典包含了以下内置函数:
1、cmp(dict1, dict2):比较两个字典元素。(python3后不可用)
2、len(dict):计算字典元素个数,即键的总数。
3、str(dict):输出字典可打印的字符串。
4、type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。
Python字典包含了以下内置方法:
1、radiansdict.clear():删除字典内所有元素
2、radiansdict.copy():返回一个字典的浅复制
3、radiansdict.fromkeys():创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4、radiansdict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值
5、radiansdict.has_key(key):如果键在字典dict里返回true,否则返回false
6、radiansdict.items():以列表返回可遍历的(键, 值) 元组数组
7、radiansdict.keys():以列表返回一个字典所有的键
8、radiansdict.setdefault(key, default=None):和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
9、radiansdict.update(dict2):把字典dict2的键/值对更新到dict里
10、radiansdict.values():以列表返回字典中的所有值
- 字典的遍历
语法示例如下:
info_dict = {"name": "xiaoming",
"qq": "12345",
"phone": "10086"}
for k in info_dict: # k是字典中每一个键值对的键
print("%s: %s" %(k, info_dict[k]))
- 字典的应用场景
用多个键值对,描述一个物体的相关信息;