Python3 字典 fromkeys() 方法
描述
Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
语法
fromkeys() 方法语法:
dict.fromkeys(seq[, value])
参数
- seq -- 字典键值列表。
- value -- 可选参数, 设置键序列(seq)对应的值,默认为 None。
返回值
该方法返回一个新字典。
实例
以下实例展示了 fromkeys()函数的使用方法:
实例
#!/usr/bin/python3
seq = ('name', 'age', 'sex')
tinydict = dict.fromkeys(seq)
print ("新的字典为 : %s" % str(tinydict))
tinydict = dict.fromkeys(seq, 10)
print ("新的字典为 : %s" % str(tinydict))
以上实例输出结果为:
新的字典为 : {'age': None, 'name': None, 'sex': None}
新的字典为 : {'age': 10, 'name': 10, 'sex': 10}
不指定值:
实例
#!/usr/bin/python3
x = ('key1', 'key2', 'key3')
thisdict = dict.fromkeys(x)
print(thisdict)
以上实例输出结果为:
{'key1': None, 'key2': None, 'key3': None}
Python3 字典
beastsam
491***707@qq.com
有一个疑惑,在给一个字典使用fromkeys方法时,无法对字典内容进行改变。
实例:
>>>x={} //建立空字典 >>>x.fromkeys(['a','b']) //调用fromkeys方法 {'a':None,'b':None} //输出 >>>x //再次输出字典x {} //字典依然为空 >>>d={'a':'1','b':'2'} >>>d.fromkeys('c','3') {'c':'3'} >>>d {'a':'1','b':'2'}beastsam
491***707@qq.com
northxw
nor***w@qq.com
回复楼上的疑惑:
Python 字典 fromkeys() 函数用于创建一个新字典. 切记是新字典. 因为你没有保存对新字典的引用,所以以后无法查看到它的变化。 可以对你的例子做一点小修改:
>>> x = {} >>> xx = x.fromkeys(['a','b']) >>> x {} >>> xx {'a': None, 'b': None}这部就是你想要的结果吗? 嘿嘿
northxw
nor***w@qq.com
风雨昭君
zho***i_4652@126.com
fromkeys 的注意点
使用 fromkeys 创建一个列表:
如下:
>>> province = dict.fromkeys(["黑龙江", "吉林", "辽宁"], [1, {"Capital": "哈尔滨"}]) >>> print(province) {'黑龙江': [1, {'Capital': '哈尔滨'}], '吉林': [1, {'Capital': '哈尔滨'}], '辽宁': [1, {'Capital': '哈尔滨'}]}我需要将辽宁的省会改为沈阳, 再输出, 如下:
>>> province["辽宁"][1]["Capital"] = "沈阳" >>> print(province) {'黑龙江': [1, {'Capital': '沈阳'}], '吉林': [1, {'Capital': '沈阳'}], '辽宁': [1, {'Capital': '沈阳'}]}可以看到每一个 Capital 都会被更改, 每一个 key 所对应的 value 值有点类似于浅拷贝。
风雨昭君
zho***i_4652@126.com