[关闭]
@danren-aa120 2019-08-20T01:44:39.000000Z 字数 1784 阅读 167

10 字典

Python


  字典是除列表外最灵活的变量数据类型。列表存储有序的数据集合,字典是无序的数据集合,它关心的是保存了哪些数据。列表中的元素可以是字典或元组,元组中的元素可以是字典或列表,字典中的键只能使用不可变类型,值可以是字典、列表或元组等。
  字典用{}定义。使用键值对存储数据;键是索引名称,必须是唯一的;值是数据,键和值用“:”分隔;键值对之间用“,”号分隔,如

  1. info_dict = {"name": "xiaoming",
  2. "qq": "12345",
  3. "phone": "10086"}

编程时,每个键值对要各自占有一行代码,出现字符串时都用双引号。
  数字类型、字符串和元组为不可变类型,内存中的数据不允许被修改;字典和列表为可变类型,使用操作方法改变内容后,变量地址不变,但重新对变量整体赋值后,会影响变量在内存中的地址。
   注意:字典中的键只能使用不可变类型,值可以是任意类型的数据。 Python中的hash()函数可以提取数据的特征码,即指纹,但只能针对不可变类型的数据。在字典中,会对key进行hash决定如何在内存中保存字典的数据。

  • 针对字典的操作
    操作大全参看https://www.cnblogs.com/panwenbin-logs/p/5497881.html
    1取值:字典[key的名称],不能使用索引字典[?]
    2增加、修改键值对
    3删除键值对
    4统计键值对数量
    5合并字典
    4清空
    具体语法如下例所示:
  1. xiaoming_dict = {"name": "xiaoming"}
  2. # 取值
  3. print(xiaoming_dict["name"])
  4. # 新增键值对/修改
  5. xiaoming_dict["age"] = 18 # 增加
  6. xiaoming_dict["name"] = "xiaoxiaoming" # 修改
  7. xiaoming_dict["shengao"] = 1.75 # 增加
  8. # 删除
  9. xiaoming_dict.pop("name")
  10. print(xiaoming_dict)
  11. # 统计键值对数量
  12. print(len(xiaoming_dict))
  13. # 合并字典
  14. temp_dict = {"height": 1.75}
  15. xiaoming_dict.update(temp_dict) # 如果包含有已存在的键,会更新数值
  16. # 清空字典
  17. xiaoming_dict.clear()
  18. 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():以列表返回字典中的所有值

  • 字典的遍历
    语法示例如下:
  1. info_dict = {"name": "xiaoming",
  2. "qq": "12345",
  3. "phone": "10086"}
  4. for k in info_dict: # k是字典中每一个键值对的键
  5. print("%s: %s" %(k, info_dict[k]))
  • 字典的应用场景
    用多个键值对,描述一个物体的相关信息;
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注