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}}
# <class 'dict'>
# 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}}
# <class 'dict'>
# 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值