
上QQ阅读APP看书,第一时间看更新
2.3.1 创建字典
字典用一对“{}”来表示,以“键:值”的形式保存数据,如{'name':'王夏尔','age':32,'职业':'工人'},键(key)与值(value)通过冒号“:”隔开,多个“键:值”对之间用逗号“,”隔开,通过键可以找到对应的值,键相当于列表和元组中的索引值。字典中的键必须是唯一的,而且是不可变的,不能用可变的数据来做键,可以用元组来做键,而不能用列表来做键。值的数据类型不受限制,可以为整数、浮点数、布尔型数据、字符串、列表、元组和字典等,这样就可以形成深层嵌套。
1.空字典
空字典用“{}”或者dict()函数来创建,如下面的代码。

2.有初始值的字典
创建字典时,将“键:值”对直接放到“{}”中,各个“键:值”对之间用逗号隔开。另外可以用dict(key1=value1,key2=value2,...,keyn=valuen)来创建字典,还可以用字典推导式建立字典,推导式格式如下,其中newdict是新生成的字典,sequence是一个序列,例如列表、元组、集合、字符串或range()函数。
newdict = {表达式1:表达式2 for变量in sequence } newdict = {表达式1:表达式2 for变量in sequence if逻辑表达式}

3.通过序列创建字典
通过字典的属性fromkeys(sequence)可以由sequence的值创建字典,字典的键是sequence的值,键的值为None,fromkeys(sequence,value)方法可以为所有键设置初始值value。还可以通过zip()函数创建字典,其格式为dict(zip(sequence1,sequence2)),其中sequence1和sequence2都是序列,例如列表、元组、字符串、字典和range()函数。zip()函数将两个序列的索引值相同数值进行匹配,一个作为键,另一个作为值,如果两个序列的长度不同,则以最短的为准。
