day06 Python 字典

1、字典的简单介绍
字典(dict)是python中唯一的⼀个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key-value保存在这个地址中. 这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key必须是可hash的, 如果你搞不懂什是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的, 那么可哈希就意味着不可变. 这个是为了能准确的计算内存地址⽽规定的.

已知的可哈希(不可变)的数据类型: int, str, tuple, bool 不可哈希(可变)的数据类型: list, dict, set

语法 :

{key1: value1, key2: value2....}

注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据

2、字典操作

dict1 = {}
dict1["1"] = "a" # 如果字典不存在key则新增,否则修改
dict1["2"] = 2
dict1["2"] = "B" # 如果key不存在,则新增;如果存在则覆盖原来的key:value

# 如果字典中不存在这个key,setdefault()将新增一个新的key:value;如果存在这个key,setdefault()不会覆盖原来的key:value
dict1.setdefault("3","c")
dict1.setdefault("3","default")

dict1.pop("3")
dict1.popitem()  # 随机删除
dict1.clear() # 清空字典

dict2 = {"1":"fhb","2":"test","100":"A"}
dict1.update(dict2) # 将dict2中的key value更新到dict1中,存在的key则修改对应的value,不存在则新增
# print(dict1["fhb"]) # KeyError: 'fhb'

print(dict1.get("fhb")) # None

# 遍历
for k,v in dict1.items(): # 循环dict1.items()得到的是一个元组,使用k,v去解构这个元组得到key个value
    print(k,v)

3、实例

    有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表} 。

li = [11,22,33,44,55,66,77,88,99,90]
dict2 = {}

for k in li:
    if k > 66:
        dict2.setdefault("k1",[]).append(k) # 第一次循环的时候 dict2.setdefault("k1",[]) 会在空字典中创建{"k1",[]} ,返回的是一个 空列表,所以可以直接append()
    else: 
        dict2.setdefault("k2",[]).append(k)
        
print(dict2)

  

 

  

原文地址:https://www.cnblogs.com/fanghongbo/p/9837113.html