一、定义
字典由键及其相应的值组成,这种键 - 值对成为项(item)
二、属性
1、字典是一种映射类型,字典用 {} 标识,它是一个无序的键 (key): 值(value) 的汇合;
2、键 (key) 必须应用不可变类型;
3、在同一个字典中,键 (key) 必须是惟一的;
4、字典是 python 惟一内置的映射类型
三、操作
1、拜访字典中的值
-
要获取与键相关联的值,可顺次指定字典名和放在方括号内的键
alien = {'color':'green'} print(alien['color'])
-
get
1)办法 get 为拜访字典提供了宽松的环境,通常试图拜访字典中没有的项,将引发异样;
2)应用 get 拜访不存在的键时,不会产生异样,返回 None;
3)可指定“默认”值,拜访不存在的键时,将返回“默认”值
4)如果字典种子哪个蕴含指定的键,get 作用于一般字典查找雷同x = {} print(x['name']) print(x.get('name')) print(x.get('name','N/A'))
2、增加键 - 值对
alien['x_position'] = 3
alien['y_position'] = 4
print(alien)
3、删除键 - 值对
-
del
1)删除的键 - 值对永远隐没,彻底删除
2)用 del 语句时,必须制订字典名和要删除的键
3)del dict[] 无返回值del alien['color'] print(alien)
-
pop
1)dict.pop()有返回值d1 = {'x':'1','y':'2'} d1.pop(x) print(d1)
-
clear()
# 清空字典,删除所有的字典项 alien = {'color':'green'} print(alien.clear())
4、批改字典中的值
# 顺次指定字典名、用方括号括起的键和与该键相关联的新值
alien['color'] = 'yellow'
print(alien)
5、复制
-
浅复制 copy()
a、须要复制的值是可变类型时,须要辨别浅复制和深复制(因为可变类型指向的是同一块内存空间);
b、须要复制的值是不可变类型时,不辨别浅复制和深复制(指向的内存空间不同)x = {'username':'admin'} y = x.copy() y['username'] = 'alice' print(y) print(x)
-
深复制 deepcopy()
深复制时原件不受影响# 为防止这种问题,一种方法是执行深复制,即同时复制值及其蕴含的所有值,可应用 copy 模块中的函数 deepcopy from copy import deepcopy x = {} x['names']=['amy','daniel'] y = x.copy() dy = deepcopy(x) x['name'].append('alice') print(y) print(dy)
6、items
办法 items 返回一个蕴含所有字典项的列表,其中每个元素都为(key,value)的模式
7、嵌套
-
字典列表
1)将三个字典放在一个列表中alien_0 = {'color':'green'} alien_1 = {'color':'red'} alien_2 = {'color':'yellow'} aliens = [alien_0, alien_1, alien_2] for alien in aliens: print(alien)
2)用 range()生成多个 alien
aliens = [] # 创立 30 个绿色的外星人 for alien_num in range(30): new_alien = {'color':'green','speed':'low'} aliens.append(new_alien) # 显示前 5 个 for alien in aliens[:5]: print(alien)
-
在字典中存储列表
pizza = { 'crust':'thick', 'toppings':['sweet','extra cheese'], } for topping in pizza['toppings']: print(topping)
-
在字典中存储字典
users = { 'alice':{ 'first':'a', 'last':'e', }, 'daniel':{ 'first':'d', 'last':'l', }, } for username,user_info in users.items(): print('\n USERNAME:'+ username)
8、遍历
-
遍历所有的键 - 值对
user = { 'username':'alice', 'first':'a', 'last':'e' } for key,value in user.items(): print('\nKEY:'+ key) print('VALUE:'+ value)
-
遍历字典中的所有键 keys()
遍历字典时,会默认遍历所有的键user = { 'username':'alice', 'first':'a', 'last':'e' } for key_name in user.keys(): print(key_name.title())
-
按程序遍历字典中的所有键 sorted()
要以特定的程序返回元素,可在 for 循环中对返回的键进行排序,应用 sorted()函数user = { 'username':'alice', 'first':'a', 'last':'e' } for name in sorted(user.keys()): print(name.title())
-
遍历字典中的所有值 values()
user = { 'username':'alice', 'first':'a', 'last':'e' } for name in user.values(): print(name.title())