python 字典学习

字典不能简单赋值,否则会出现引用现象。比如:

d1 = dict(a=1, b=2)
print(d1)
# {'a':1, 'b':2}
d2 = d1
print(d2)
# {'a':1, 'b':2}
d2['a'] = 2
print(d2)
# {'a':2, 'b':2}
print(d1)
# {'a':2, 'b':2}

可以使用d2 = d1.copy() 避免引用现象发生

d1 = dict(a=1, b=2)
print(d1)
# {'a':1, 'b':2}
d2 = d1.copy()
print(d2)
# {'a':1, 'b':2}
d2['a'] = 2
print(d2)
# {'a':2, 'b':2}
print(d1)
# {'a':1, 'b':2}
key_list = ['cotton', 'fiber', 'jeans', 'leather', 'silk', 'wool']
val_list = [dict(raw=0, small=0).copy() for i in range(len(key_list))]
material_dict = dict(zip(key_list, val_list))
print(material_dict)
print(type(material_dict))
print(material_dict.keys())
print(material_dict['leather']['raw'])
material_dict['leather']['raw'] += 1
material_dict['leather']['small'] += 2
print(material_dict['leather'])
print(material_dict)
# {'cotton': {'raw': 0, 'small': 0}, 'fiber': {'raw': 0, 'small': 0}, 'jeans': {'raw': 0, 'small': 0}, 'leather': {'raw': 0, 'small': 0}, 'silk': {'raw': 0, 'small': 0}, 'wool': {'raw': 0, 'small': 0}}
# 
# dict_keys(['cotton', 'fiber', 'jeans', 'leather', 'silk', 'wool'])
# 0
# {'raw': 1, 'small': 2}
# {'cotton': {'raw': 0, 'small': 0}, 'fiber': {'raw': 0, 'small': 0}, 'jeans': {'raw': 0, 'small': 0}, 'leather': {'raw': 1, 'small': 2}, 'silk': {'raw': 0, 'small': 0}, 'wool': {'raw': 0, 'small': 0}}


material_list = ['cotton', 'fiber', 'jeans', 'leather', 'silk', 'wool']
material_dict = dict.fromkeys(material_list, dict(raw=0, small=0))
print(material_dict)
print(type(material_dict))
print(material_dict.keys())
print(material_dict['leather']['raw'])
material_dict['leather']['raw'] += 1
material_dict['leather']['small'] += 2
print(material_dict['leather'])
print(material_dict)
# {'cotton': {'raw': 0, 'small': 0}, 'fiber': {'raw': 0, 'small': 0}, 'jeans': {'raw': 0, 'small': 0}, 'leather': {'raw': 0, 'small': 0}, 'silk': {'raw': 0, 'small': 0}, 'wool': {'raw': 0, 'small': 0}}
# 
# dict_keys(['cotton', 'fiber', 'jeans', 'leather', 'silk', 'wool'])
# 0
# {'raw': 1, 'small': 2}
# {'cotton': {'raw': 1, 'small': 2}, 'fiber': {'raw': 1, 'small': 2}, 'jeans': {'raw': 1, 'small': 2}, 'leather': {'raw': 1, 'small': 2}, 'silk': {'raw': 1, 'small': 2}, 'wool': {'raw': 1, 'small': 2}}

字典创建的八种方式:
https://blog.csdn.net/Sun_Raiser/article/details/124211694

你可能感兴趣的:(python,python,学习,numpy)