10天学会Python系列-Day3 数据结构之字典

10天学会Python系列-Day3 数据结构之字典,第1张

1. 字典概述

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

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示

d = {key1:value1, key2:value2}

字典的特性:

  • 字典的key必须为不可变数据类型,例如数值类型、字符串、元组类型
  • 字典的key不可以重复,若定义重复则后面的键值会覆盖前面的,值是可以重复的;
  • 字典是无序的,所以无法通过数值索引来访问,必须通过key来访问

举例:

x = {'tom':99, 'tany':66, 1 : 2, ('imgs/zzz/1.jpg', 'imgs/zzz/2.jpg') : 69.3, 'skills':['english', 'programing', 'play football'], 'tom':60}
print(x, type(x))

2. 字典的定义

字典的定义可以通过dict函数和花括号{}来定义。

2.1 dict函数

首先看一下dict()函数的描述:

dict?

从输出的描述信息中可知,dict可支持多个参数:

  • 可为空,为空时则创建一个空字典
x = dict()
print(x, type(x))

{}

  • 不为空,且参数为1个参数,且参数为映射对象key-value键值对
x = dict({'one':1, 'two':2})
x

{‘one’: 1, ‘two’: 2}

  • 不为空,参数为多个key-value键值对
x = dict(one=1, two=2, three=3)     # 注意:one,two,three输入的参数不是字符串,创建后变为字符串
x

{‘one’: 1, ‘two’: 2, ‘three’: 3}

2.2 花括号{}
  • 空字典
x = {}
print(x, type(x))

{}

  • 有数据的字典
x = {'tom':99, 'tany':66}
print(x, type(x))

2.3 字典的特性
  • 字典的key必须为不可变数据类型,例如数值类型、字符串、元组类型
x2 = {'tom':99, 1.2:3.4, 7+8j : 1+2j, (1,2):(3, 4)} # key分别为字符串、浮点数值类型、复数数值类型、元组,他们都是不可变数据类型
print(x2, type(x2))

{‘tom’: 99, 1.2: 3.4, (7+8j): (1+2j), (1, 2): (3, 4)}

异常的数据定义

x3 = {[12, 3, 4]: [1, 4, 8], {1, 3, 4} : {23}}      # 分别为列表key、字典key,它们都是可变数据类型,因此不能作为key

  • 字典的key不可以重复,若重复,则后值会覆盖前值;值可重复
x4 = {'name':'chairs', 'score':68, 'score' : 89}
print(x4, type(x4))

3. 字典的常用用法

用dir函数查询字典变量支持的属性和方法

x = {'tom':99, 'tany':66}
dir(x)

[‘class’,
‘contains’,
‘delattr’,
‘delitem’,
‘dir’,
‘doc’,
‘eq’,
‘format’,
‘ge’,
‘getattribute’,
‘getitem’,
‘gt’,
‘hash’,
‘init’,
‘init_subclass’,
‘iter’,
‘le’,
‘len’,
‘lt’,
‘ne’,
‘new’,
‘reduce’,
‘reduce_ex’,
‘repr’,
‘setattr’,
‘setitem’,
‘sizeof’,
‘str’,
‘subclasshook’,
‘clear’,
‘copy’,
‘fromkeys’,
‘get’,
‘items’,
‘keys’,
‘pop’,
‘popitem’,
‘setdefault’,
‘update’,
‘values’]

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/799300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存