Python-如何创建字典,及生成字典的方法
1、1)字典是python内置的映射类型。
2)字典是由零个键值对,或一个键值对,或多个键值对用逗号隔开,包括在花括号内组成。(一对空的花括号创建一个空字典):
例如:
d1 = {}
print(type(d1))
>>> <class 'dict'>
d2 = {'name': 'Tom', 'age': 18, 'height': 187}
print(type(d2))
>>><class 'dict'>

2、1)字典是以键取值,与列表元组的索引取值不同。
2)在一个字典内,键名必须是唯一的,值可以是任何数据。(同名的键,后面的值会覆盖全面的值)
3)键,必须是不可变类型,但最好字符串。
示例:
d1 = {"name": ['齐德隆','齐东强'],
"age": [21,22],
"age":[34,23]}
print('项数:',len(d1))
项数: 2
print('输出:',d1)
输出: {'name': ['齐德隆', '齐东强'], 'age': [34, 23]}

3、数字和元组也是不可变类型,为什么说最好用字符串:
1)有可能会出现整数和浮点数相等等的情况,如1可以和1.0会被认为是同名键。
d1 = {1: '齐德隆', 2.0: 'Jerry', 1.0: 'Tom', 2: '齐东强'}
print(d1)
---{1: 'Tom', 2.0: '齐东强'}
2)元组里可能会包括列表或字典等可变类型的元素。如(1,[2,4],6)
所以,用字符串做键是最保险的,既是想要用数字来表明顺序,也把数字变为字符串(如‘1’:’拉布拉多‘)

1、无参数的 dict():
没有参数的dict()函数,返回一个空字典。
示例:
d1=dict()
print(d1)
---{}

2、传入关键字参数:dict(**kwargs)
1)参数是关键字参数( key=value)
2)用关键字参数作为键值对,返回一个字典。
3)如果键有重名,后者的值将替代前者。
例如:
d1=dict(name='齐德隆',age=24,height=187)
print(d1)
---{'name': '齐德隆', 'age': 24, 'height': 187}
有关函数的参数可看下面的链接。

3、传入映射对象做参数:dict(mapping,**kwargs)
1)传入的参数mapping是映射对象。是位置参数。
2)如果键有重名,后者的值将替代前者值。
例如:
k = ['name', 'age', 'height']
v = ['齐德隆', '24', '187']
worker=zip(k,v)
d1 = dict(worker)
print(d1)
{'name': '齐德隆', 'age': '24', 'height': '187'}

4、传入可迭代的对象做参数:dict. (iterable,**kwargs)
1)参数 iterable 是可迭代的对象;是位置参数。
2)iterable的每个元素应是两个子元素的可迭代对象,如:[( a , 1 ) , ( b , 2 )]
3)每个元素中的第一个子元素将成为字典的键,第二个子元素成为值。
4)如果键有重名,后者的值将替代前者的值。
例如:
worker=[('name','齐德隆'),('age',24),('height',187)]
d1=dict(worker)
print(d1)
{'name': '齐德隆', 'age': 24, 'height': 187}

5、以上3,4示例中:dict. (iterable,**kwargs)和dict(mapping,**kwargs)都没有传入关键字参数;如果要传入关键字参数:
1)关键字参数和值会被作为键值对,加入位置参数mapping或iterable创建的字典中。
2)如果键已存,关键字参数的值将替代位置参数的值。
例如:
worker=[('name','齐德隆'),('age',24),('height',187)]
d1=dict(worker,place='大兴安岭',name='齐东强')
print(d1)
{'name': '齐东强', 'age': 24, 'height': 187, 'place': '大兴安岭'}
