Python 中的 fromkeys() 函数有助于使用给定序列和给定值创建新字典。
dictionary.fromkeys(sequence[, value]) #where sequence may be a integers, string etc
接受两个参数。如果从可变(值可更改)对象列表创建字典,并且之后可变对象发生更改,则它将反映序列中的每个元素。这是因为每个元素都指向内存中的同一个对象。为了避免此问题,可以使用字典推导式。
| 参数 | 描述 | 必需/可选 |
|---|---|---|
| sequence | 用作新字典键的元素序列 | 必需 |
| value | 设置为字典中每个元素的值。默认值为 None。 | 可选 |
如果给定值参数,则新创建字典的每个元素都将分配指定的值。
| 输入 | 返回值 |
|---|---|
| 如果参数 | 新字典 |
# vowels keys
keylist = {'a', 'e', 'i', 'o', 'u' }
vowelslist = dict.fromkeys(keylist)
print(vowelslist)
输出
{'a': None, 'u': None, 'o': None, 'e': None, 'i': None}
# vowels keys
keylist = {'a', 'e', 'i', 'o', 'u' }
value = 'vowel'
vowelslist = dict.fromkeys(keylist, value)
print(vowelslist)
输出
{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}
# vowels keys
keylist = {'a', 'e', 'i', 'o', 'u' }
value = [4]
vowelslist = dict.fromkeys(keylist, value)
print(vowelslist)
# updating the value
value.append(5)
print(vowelslist)
输出
{'a': [4], 'u': [4], 'o': [4], 'e': [4], 'i': [4]}
{'a': [4, 5], 'u': [4, 5], 'o': [4, 5], 'e': [4, 5], 'i': [4, 5]}