python中的字典

  • 可变数据类型与不可变数据类型

python中的数据类型可以划分为可变数据类型和不可变数据类型,可变数据类型就是可以哈希的数据类型,不可变数据类型就是不可哈希的数据类型。(不太懂什么是哈希,似乎是一种技术处理数据使得数据便于处理)

不可变的数据类型:int float complex bool str tuple

可变的数据类型:list dict set

  • dict字典的key与value的基本规定

字典dict是用来储存关心对的数据类型,每个key对应一个value。其中key只能是不可变类型,而value则可以使任意类型。

字典dict是无序的

dic = {'name':'鲁达', 
       'age':22, 
       'weight':160}
  • 字典的增操作
dic['age'] = 35  # 如果有所输入的键值则更改该键值对应的数据
dic['hight'] = 185  # 如果没有键值则添加键值

setdefault(k,d=None)如果字典中存在存在键值k则不作任何改变,如果不存在该键值,则增加键值以及键值所对应的数据d.默认该数据为None。

  • 字典的删操作

 pop(k,d)字典的pop与列表的pop相似,是依据键值删除字典中的数据。当字典中存在键值k时删除该键值对并返回该键值对应的值,当列表中没有该键值时返回d。默认为None

print(dic.pop('age',None))  # 字典的pop()与列表的pop相似,也有返回值,返回的事所删除键值对的值
print(dic.pop('age',None))  # 可以设置没有所查询键值时的返回值,默认为None

popitem()随机删除字典中的一组键值对,并且返回该键值对

print(dic.popitem())  # 随机删除字典中的一组键值对

clear()删除字典中的所有元素

dic.clear()  # 清空字典中的所有元素

del方法可以直接删除整个字典,或者按照键值删除键值对。但是如果按照键值删除键值对时,所输入的键值是不存在的则会报错。(由于会报错,不好用)

del dic['age']  # 当输入的键值不存在时就会报错
  •  字典的改操作

可以直接通过键值更改字典中的数据,类似于利用索引更改列表中的数据。

dic['hight'] = 185  # 当字典中不存在该键值时会添加该键值

dict1.update(dict2)是字典数据常用的改操作,使得字典dict1更新到dict2。dict2中的元素如果dict1中有则用dict2中该键值对替换,如果没有则增加。

dic1.update(dic2)  # 利用dic2更新dic1中的数据
  • 字典的查操作

keys()返回字典所有的键值并组成一个类似于列表的数据。(不是列表类型但是类似于列表类型)

values()返回字典所有的值并组成一个类似于列表的数据。(不是列表类型但是类似于列表类型)

item()返回字典所有的键值对组成的元组并组成一个类似于列表的数据。(不是列表类型但是类似于列表类型)

print(dic.keys())  # 结果为dict_keys(['age', 'weight', 'name'])
print(dic.values())  # 结果为dict_values([22, 160, '鲁达'])
print(dic.items())  # 结果为dict_items([('age', 22), ('weight', 160), ('name', '鲁达')])
#遍历字典中的键值
for i in dic:
       print(i)
for i in dic.keys():
       print(i)
#遍历字典中的值
for i in dic.values():
       print(i)
#遍历字典中键值对
for i in dic.items():
       print(i)
for i,j in dic.items():
print(i,j)

get(key,d)依据key寻找value,当能查找到时返回该value,当不能查找到时返回所设置的d

dic = {
       'name':'鲁达',
       'age':22,
       'weight':160
}
print(dic.get('hight','没有该值'))
  • fromkeys创建字典

使用fromkeys('iterable value',value)创建一个以可迭代变量中的元素作为键值,用value作为各个键值对应的值。

dic = dict.fromkeys(['k1','k2','k3'],['a','b','c'])
print(dic)  # 输出结果为{'k1': ['a', 'b', 'c'], 'k3': ['a', 'b', 'c'], 'k2': ['a', 'b', 'c']}
  •  for循环的一些特点
for i in value

当value为一个不可变得数据类型时,在第一次进入循环后以后循环都一直使用value的原有值不会改变。

当value为一个可变数据类型时 

原文地址:https://www.cnblogs.com/baisexiaoxuanfeng/p/10440185.html