fromkeys() 方法使用用户提供的值从给定的元素序列创建一个新字典。
用法:
dictionary.fromkeys(sequence[, value])
参数:
fromkeys()
方法有两个参数:
- sequence- 将用作新字典键的元素序列
- 值(可选)- 为字典的每个元素设置的值
返回:
fromkeys()
方法返回一个以给定元素序列作为字典键的新字典。
如果设置了 value 参数,则新创建的字典的每个元素都设置为提供的值。
示例 1:从键序列创建字典
# vowels keys
keys = {'a', 'e', 'i', 'o', 'u' }
vowels = dict.fromkeys(keys)
print(vowels)
输出
{'a': None, 'u': None, 'o': None, 'e': None, 'i': None}
示例 2:从具有值的键序列创建字典
# vowels keys
keys = {'a', 'e', 'i', 'o', 'u' }
value = 'vowel'
vowels = dict.fromkeys(keys, value)
print(vowels)
输出
{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}
示例 3:从可变对象列表创建字典
# vowels keys
keys = {'a', 'e', 'i', 'o', 'u' }
value = [1]
vowels = dict.fromkeys(keys, value)
print(vowels)
# updating the value
value.append(2)
print(vowels)
输出
{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]} {'a': [1, 2], 'u': [1, 2], 'o': [1, 2], 'e': [1, 2], 'i': [1, 2]}
如果 value
是可变对象(其值可以修改),如 list 、 dictionary 等,则当修改可变对象时,序列的每个元素也会更新。
这是因为每个元素都被分配了对同一个对象的引用(指向内存中的同一个对象)。
为了避免这个问题,我们使用字典理解。
# vowels keys
keys = {'a', 'e', 'i', 'o', 'u' }
value = [1]
vowels = { key : list(value) for key in keys }
# you can also use { key : value[:] for key in keys }
print(vowels)
# updating the value
value.append(2)
print(vowels)
输出
{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]} {'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]}
在这里,对于 keys
中的每个键,都会创建一个来自 value
的新列表并将其分配给它。
本质上,value
没有分配给元素,而是从中创建了一个新列表,然后将其分配给字典中的每个元素。
相关用法
- Python Dictionary clear()用法及代码示例
- Python Dictionary update()用法及代码示例
- Python Dictionary setdefault()用法及代码示例
- Python Dictionary pop()用法及代码示例
- Python Dictionary popitem()用法及代码示例
- Python Dictionary has_key()用法及代码示例
- Python Dictionary get()用法及代码示例
- Python Dictionary items()用法及代码示例
- Python Dictionary copy()用法及代码示例
- Python Dictionary keys()用法及代码示例
- Python Dictionary values()用法及代码示例
- Python Decimal shift()用法及代码示例
- Python Decimal next_plus()用法及代码示例
- Python Decimal rotate()用法及代码示例
- Python Decimal max_mag()用法及代码示例
- Python Datetime.replace()用法及代码示例
- Python DateTime转integer用法及代码示例
- Python Decimal as_integer_ratio()用法及代码示例
- Python Decimal is_subnormal()用法及代码示例
- Python DataFrame.to_excel()用法及代码示例
注:本文由纯净天空筛选整理自 Python Dictionary fromkeys()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。