字典,用{}表示 键值对数据{key : value} 唯一性
键必须是可哈希的,不可变的数据类型都可以当做字典中的键:字符串/数字/布尔值/元祖
列表不可哈希,因为可变,所以字典的键不能是列表
增删改查
增
dic['键']='键值'
dic.setdefault('键','键值')
删
pop:
dic.pop("键")
del:
del dic['键']
clear:
dic.clear()
改:
dic['键']='键值'
dic.update(dic)
查
for 循环
for i in dic:
循环默认是获取字典中的键
get(key)
dic[key]
print(dic[键]) 查看1,没有这个键的时候查询会报错
print(dic.get('键')) 查看2 没有这个键的时候返回none
print(dic.get('键','错误返回文字')) 查看2 没有这个键的时候返回后面错误的文字
print(dic.setdefault('键')) 查看3 没有这个键的时候返回none
字典中独有的三个方法:keys,values,items 都是将获取到的所有值存放在一个高仿的列表中
获取字典的每一个键
for i in dic.keys():
print(i)
for i in dic:
print(i)
获取字典的每一个值
for i in dic.values:
print i
获取字典的每一个键和值,以元祖显示
for i in dic.items():
print i
for item in dic.items():
a,b=item
print(a)
print(b)
for a,b in dic.items():
# a, b = item
print(a)
print(b)
字典嵌套:
dic={}
作业及默写
1/有如下变量(tu是个元祖),请实现要求的功能
tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
a.讲述元祖的特性
b.请问tu变量中的第一个元素"alex"是否可被修改?
c.请问tu变量中的k2对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"seven"
d.请问tu变量中的k3对应的值是什么类型?是否可以被修改,如果可以,请在其中添加一个元素Seven""
2/字典dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
a.请循环输出所有的key
b.请循环输出所有的value
c.请循环输出所有的key和value
d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
e.请在修改字典中"k1"对应的值为"alex",输出修改后的字典
f.请在k3对应的值中追加一个元素44,输出修改后的字典
g.请在k3对应的值的第一个位置插入元素18,输出修改后的字典