一. 字典
字典的键必须是不可变的, 是可哈希的, 可以用数字, 字符串, 元组, 布尔值, 不可用列表, 字典, 集合. 值可以取任何数据类型.
键必须是唯一的.
字典的元素是按照哈希表的顺序保存的, 而哈希表不是连续的, 字典不能切片, 只能通过键来获取.
二. 字典的操作:
dic = {1: '1', 2: '2', "3": 3, 4: 4, 5: 5}
增
dic["6"] = 6 如果键已存在, 变为修改值
dic.setdefault(7, 7)
dic.setdefault(8) 这个键的值是None
dic.setdefault(1, 3) 键已经存在, 不会采取操作
dic.setdefault(1: 3) 这样会报错
删
dic.pop(1) 返回key 1的值, 不存在会报错
del dic["3"] 不存在会报错
dic.popitem() 随机删除
dic.clear() 清空字典
改
dic["3"] = 100 如果键不存在会添加
dic2 = {1:100, 9:900}
dic.update(dic2) dic2中的键值对会替换dic中的键值对, 同时dic中没有的dic2的键值对会添加到dic中
查
print(dic[1])
print(dic.setdefault(1)) 不存在键会输出None
print(dic[99]) 不存在键会报错
print(dic.get(1))
print(dic.get(99)) None
print(dic.get(99, "dsfjhkau")) 输出dsfjhkau
嵌套
dic = {1:1, 2:2, 3:{4:4, 5:5, 6:{7:7, 8:8}, 9:9}, 10:10}
print(dic[3][6][7]) 输出7
print(dic.get(3).get(6).get(7)) 输出7, 如果第一个get输出None, 对None用get查询会报错
print(dic.get(3).get(6).get(99, "adjksas")) 输出adjksas
其他
print(dic.keys()) 键的高仿列表
print(dic.values()) 值的高仿列表
print(dic.items()) 元组形式的键值对的高仿列表
a, b = "12" 将字符串12解构打开, 按位置赋值给a, b
a, b = (1, 2)
a, b = [1, 2]
print(a)
print(b)
for a, b in dic.items():
print(a)
print(b)
dic = {}
dics = dic.fromkeys([1,2,3],'abc')
print(dics)
dic = dict.fromkeys("12")
print(dic) 输出{'1': None, '2': None}