Python学习笔记——字典及其操作(增,删,改,查)

字典

python中唯一的映射类型,采用键值(key-value)对的方式存储数据,python中通过对key进行哈希函数运算,根据计算结果得到value值得存储位置。这样就要求key值必须是可哈希的。可哈希代表着key必须唯一是不可变类型,如:数字,字符,元组(只读列表,用( )表示)

列表是有序的对象集合,元素通过索引(偏移)来查询

字典是无序的对象集合,元素通过key来查询

字典用{}表示

dic = {'name':'小牧','age':12}  # 这是一个字典
print(dic)   # 输出结果 {'name': '小牧', 'age': 12}

字典的增

  • 直接添加
dic = {'name':'小牧','age':12}
dic['job'] = 'work'
print(dic)       # 输出结果 {'name': '小牧', 'age': 12, 'job': 'work'}
  • 通过setdefault()
    setdefault()存在返回值,如果字典已近有了就不在重复添加
ret = dic.setdefault('address','china')
print(ret)    # 输出结果 china 所添加的值
print(dic)   # 输出结果 {'name': '小牧', 'age': 12, 'job': 'work', 'address': 'china'}

# 重复添加验证
dic.setdefault('address','china')  
print(dic)  # 输出结果{'name': '小牧', 'age': 12, 'job': 'work', 'address': 'china'}

字典的查

  • 通过键值查找
dic = {'name': '小牧', 'age': 12, 'job': 'work', 'address': 'china'}
print(dic['name']) #输出结果 小牧
  • keys() 查看都有哪些健
dic = {'name': '小牧', 'age': 12, 'job': 'work', 'address': 'china'}
print(dic.keys()) #输出结果 dict_keys(['name', 'age', 'job', 'address'])
  • dic.values() 查看都有哪些值
dic = {'name': '小牧', 'age': 12, 'job': 'work', 'address': 'china'}
print(dic.values()) #输出结果 dict_values(['小牧', 12, 'work', 'china'])
  • items() 查看所有键值对
dic = {'name': '小牧', 'age': 12, 'job': 'work', 'address': 'china'}
print(dic.items())   #输出结果 dict_items([('name', '小牧'), ('age', 12), ('job', 'work'), ('address', 'china')])

注意:items() keys() values()得到的返回值并不是list,需要转换形如:list(dic.key)

字典的改

  • 取键值,然后修改
dic = {'name': '小牧', 'age': 12, 'job': 'work', 'address': 'china'}
dic['name'] = '小王'
print(dic)
  • 通过update()函数完成修改,如果原来字典中有的替换,没有的增加
dic = {'name': '小牧', 'age': 12, 'job': 'work', 'address': 'china'}
a = {'name':'小黄','t':1,'f':3}
dic.update(a)
print(dic)  # 输出结果 {'name': '小黄', 'age': 12, 'job': 'work', 'address': 'china', 't': 1, 'f': 3}

字典的删

  • del 完全删除键值对或者字典
dic = {'name': '小黄', 'age': 12, 'job': 'work', 'address': 'china', 't': 1, 'f': 3}
del dic['t']
print(dic)  # 输出结果 {'name': '小黄', 'age': 12, 'job': 'work', 'address': 'china', 'f': 3}
  • pop(‘key’)
dic = {'name': '小黄', 'age': 12, 'job': 'work', 'address': 'china', 'f': 3}
print (dic.pop('f')) # 输出结果 3
print(dic) # 输出结果 {'name': '小黄', 'age': 12, 'job': 'work', 'address': 'china'}
  • clear()清空字典
dic = {'name': '小黄', 'age': 12, 'job': 'work', 'address': 'china', 'f': 3}
print(dic.clear()) # 输出结果 None

字典的多层嵌套

cc = {
    'c':{
    'h':'china'
    },
    'u':{
    's':'usa'
    },
    'c':{
    'a':'canada'
    }
}

print(cc) # 结果 {'c': {'a': 'canada'}, 'u': {'s': 'usa'}}

字典的排序

sorted()默认的为根据key排序,如果想改为value可以修改参数 例如:sorted(dic.value())

dic = {'name': '小黄', 'age': '12', 'job': 'work', 'address': 'china', 'f': '3'}
print(sorted(dic))  #排序结果  ['address', 'age', 'f', 'job', 'name']
print(sorted(dic.values())) #排序结果 ['12', '3', 'china', 'work', '小黄']

字典的遍历

for i in dic:
    print(i)   #默认为健
    print(i,dic[i])  # 得到key和value

for i,v in dic.items():
    print(i,v) # 得到key和value

end!

你可能感兴趣的:(Python笔记)