dict 字典 {} python唯一的一个键值对数据
键值对 {键:值}
键必须是不可变的数据类型
字典是不能当字典的键,因为字典是可变的
值是没有任何要求的
dic = {'key':'v',1:'True',False:'asdf',(1,2,3):[1,2,3,4]}
len()
for i in dic:
print(i)
{'key':1}
不可变:(可哈希)
数字 字符串 元组 布尔值
可变: (不可哈希)
列表 字典
字典里的键必须保证唯一(不能重复)
python36 有顺序打印
python35及以下无序打印
增
dic['3'] = '小奶狗的芭比'
print(
增 如果这个键不在字典中就是添加,存在就是修改
dic.setdefault('周阳','国家一级大厨') #存在就不进行添加,不存在就添加
# setdefault中第一个参数是键 第二参数是值 如果不写值就默认为None
print(dic)
dic.setdefault('艺术哥','就上了') #存在就不进行添加,不存在就添加
# setdefault中第一个参数是键 第二参数是值 如果不写值就默认为None
print(dic)
删
###### 字典是没有remove
s = dic.pop('3') # pop返回的是被删除的值 pop一定要给人家参数 参数是要删除的键
print(s)
print(dic)
s1 = dic.popitem() # 随机删除 在python36中删除最后一个 python35及以下随机删除
print(s1) popitem返回的是被删除的键值对以元组的形式显示
元组中第一个是字典中的键 第二个是字典中的值
print(dic)
del dic # 删除整个字典
print(dic)
del dic['3'] #通过dic['键']删除
print(dic)
dic.clear() #清空
改
dic = {1:2,'3':8,False:True,(1,2,3):['132','qw'],'周公':'移山'}
dic1 = {'周公':'放我的孩子们',4:89}
# dic[1] = 78 # 如果这个键在字典中就是修改,不存在就是添加
# print(dic)
dic1.update(dic)
print(dic1)
查
dic = {1:2,'3':8,False:True,(1,2,3):['132','qw'],'周公':'移山'}
s = dic.get(4) #不报错,默认返回None 可以自己定义返回值
print(dic["键"]) #报错
print(s)
其他操作
dic = {1: 2, '3': 8, False: True, (1, 2, 3): ['132', 'qw'], '周公': '移山'}
print(dic.keys()) #高仿列表A货
print(dic.values()) #高仿列表A货
print(dic.items()) #以元组形式将键值对放在一个高仿列表里
for k,v in dic.items():
print(k,v)
for i in dic.values():
print(i)
for i in dic:
print(i) # 获取到的是键
if 1 in dic:
print(666)
for i in dic:
# print(dic[i])
print(dic.get(i)) #使用get
for i in dic:
print(i,dic[i])
解构:
a,b = 1,2
print(a)
print(b)
a = 10
b = 20
a,b = b,a
c,d = (1,2)
print(c)
print(d)
a,b = [1,2]
print(a)
print(b)
a,c = 12 ,8
print(a)
print(c)
字典的嵌套:
dic = {'name': '汪峰',
'age': 48,
'job': '输出',
'wife': [{'name': '葛
慧杰','age':20,'job':'输入','baby':'小苹果'},
{'name': '国际章', 'age': 23, 'job': '国际输入', 'baby': ['胸大', '熊二']}],
}
print(dic['wife'][0]['name'])
print(dic['wife'][0]['baby'])
print(dic['wife'][1]['baby'][0])