字典

一. 字典

字典的键必须是不可变的, 是可哈希的, 可以用数字, 字符串, 元组, 布尔值, 不可用列表, 字典, 集合. 值可以取任何数据类型. 

键必须是唯一的. 

字典的元素是按照哈希表的顺序保存的, 而哈希表不是连续的, 字典不能切片, 只能通过键来获取. 

 

 

二. 字典的操作:

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}

posted @ 2018-08-01 11:03  NachoLau  阅读(573)  评论(0编辑  收藏  举报