• Key键必须是唯一的,不可出现重复的键
  • 值可以取任何数据类型,但是键只能使用字符串,数字,或者元组
  • 字典是一个无序的数据集合,使用print输出字典时,通常输出顺序和定义顺序不一样

取key和取value

a_dict = {"id":"123", "name":"wuyin", "site":"www"}

或者:a_dict= dict(id="123",name="wuyin",site="www")

a_dict["id"] # 会输出123

两种写法

a_dict = {"id":"123", "name":"wuyin", "site":"www"}
a_dict = {
"id":"123",
"name":"wuyin",
"site":"www"}

修改和添加

a_dict[key] = value # 如果key存在则是对其值进行修改;若key不存在就是新添加一个键值对

字典的内置函数

type() # 检测括号中的数据类型
id() # 取括号中的变量地址,如果是id(a_dict[])则是取元素的地址
del a_dict # 或者 del(a_dict) 这种形式 ,则会把a_dict整个内存删除,再次输出会报错,和方法的clear()作对比
len() # 统计括号中字典的键值对个数
id() # 取括号中变量的地址,如果是a_dict[]这种形式,则表示取该索引下元素的地址

字典的内置方法

a_dict.keys() # 会输出所有的key 如:dict_keys(['id', 'name', 'site'])
a_dict.values() # 会输出所有的value 如:dict_values(['123', 'wuyin', 'www'])
a_dict.items() # 会输出所有的key和value元组列表(记得和直接输出作对比) 如:dict_items([('id', '123'), ('name', 'wuyin'), ('site', 'www')])

a_dict.pop(key) # 删除指定值,key不存在会报错 和内置函数 del 作对比
a_dict.popitem() # 随机删除一个键值对
a_dict.clear() # 清空字典

a_dict.setdefault(key, value) # 如果key存在就不会修改数据;如果key不存在,就新建键值对 和a_dict[]作对比

合并

a_dict.update(字典2) # 将字典2的数据合并到字典1
'''
注:字典2中存有和字典1相同的key,则字典2中的值会将字典1中的该键值对替换
'''

循环遍历

a_dict = {"id":"123", "name":"wuyin", "site":"www"}
for i in a_dict:
print(i)
'''
会输出:
id
name
site
'''

a_dict = {"id":"123", "name":"wuyin", "site":"www"}
for i in a_dict:
print(a_dict[i])
'''
会输出:
123
wuyin
www
'''

a_dict = {"id":"123", "name":"wuyin", "site":"www"}
for i in a_dict:
print(i, ":", a_dict[i])
'''
会输出:
id : 123
name : wuyin
site : www
'''

字典推导式

'''
格式:
{key:value for variable in iterable [if expression]}
执行步骤:
• 1、for 循环:遍历可迭代对象,将其值赋给变量。
• 2、if 语句:筛选满足 if 条件的结果。
'''
b_dict = {i:i*2 for i in range(5)}
print(b_dict)

会输出:{0: 0, 1: 2, 2: 4, 3: 6, 4: 8}

b_dict = {i:i*2 for i in range(5) if i<3}
print(b_dict)

会输出:{0: 0, 1: 2, 2: 4}

拓展

其他3种方法创建字典

  1. b_dict = {i:i2 for i in range(5)}
  2. dict(Runoob=1, Google=2, Taobao="wuyin") # 会输出:b_dict = {i:i2 for i in range(5)}
  3. dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)]) # 会输出:{'Runoob': 1, 'Google': 2, 'Taobao': 3} 其实这就是元素为元组的字典

字典的几种特殊格式

image.png

Last modification:December 21st, 2020 at 10:54 pm
创作不易,请随意赞赏