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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。