#创建一个空字典
empty_dict =dict()print(empty_dict)#用**kwargs可变参数传入关键字创建字典
a = dict(one=1,two=2,three=3)print(a)#传入可迭代对象
b = dict(zip(['one','two','three'],[1,2,3]))print(list(zip(['one','two','three'],[1,2,3])))print(b)#传入可迭代对象
c = dict([('one', 1), ('two', 2), ('three', 3)])print(c)
c1= dict([('one', 1), ('two', 2), ('three', 3),('three', 4),('three', 5)])print(c1)#如果键有重复,其值为最后重复项的值。
#传入映射对象,字典创建字典
d = dict({'one': 1, 'two': 2, 'three': 3})print(d)print(a == b == c == d)
输出:
{}
{'one': 1, 'two': 2, 'three': 3}
[('one', 1), ('two', 2), ('three', 3)]
{'one': 1, 'two': 2, 'three': 3}
{'one': 1, 'two': 2, 'three': 3}
{'one': 1, 'two': 2, 'three': 5}
{'one': 1, 'two': 2, 'three': 3}
True
知识点:
class dict(**kwarg)class dict(mapping, **kwarg)class dict(iterable, **kwarg)
在python中,*arg表示任意多个无名参数,类型为tuple;**kwargs表示关键字参数,为dict。参考【Python—参数】*arg与**kwargs参数的用法
在python官方文档中说明,如果传入的是可迭代对象,则可迭代对象中的每一项自身必须是可迭代的,并且每一项只能有两个对象。第一个对象成为新字典的键,第二个对象成为其键对应的值。如果键有重复,其值为最后重复项的值。
#用 class dict(mapping, **kwarg) 创建一个并集字典,会影响相同键不同值的项
union = dict(s1,**s2)print (union)
输出:
{'d': 4, 'a': 3, 'e': 3, 'f': 4, 'c': 4, 'b': 3}
知识点:
在函数调用时,**会以键/值对的形式解包一个字典,使其成为独立的关键字参数。参考【Python—参数】*arg与**kwargs参数的用法