fromkeys是创造一个新的字典。就是事先造好一个空字典和一个列表,fromkeys会接收两个参数,第一个参数为从外部传入的可迭代对象,会将循环取出元素作为字典的key值,另外一个参数是字典的value值,不写所有的key值所对应的value值均为None,写了则为默认的值
v = dict.fromkeys(range(10)) print(v) 结果: {0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}
传入第二个参数:
v = dict.fromkeys(range(10),'hello') print(v) 结果: {0: 'hello', 1: 'hello', 2: 'hello', 3: 'hello', 4: 'hello', 5: 'hello', 6: 'hello', 7: 'hello', 8: 'hello', 9: 'hello'}
fromkeys的append和赋值修改
v = dict.fromkeys(['k1','k2'],[]) v['k2'].append(666) print(v) v['k1'] = 777 print(v) 结果: {'k1': [666], 'k2': [666]} {'k1': 777, 'k2': [666]}
结论:fromkeys方法并不适用来创建多个对象,因为我如果改变了某一个对象中的某个属性,那么其余对象都会被改变。
但如果就想要呈现这种(连坐的)效果,那么可以这个方法。