Python 字典 fromkeys() 方法



Python 字典 fromkeys() 方法用于根据给定的可迭代对象创建新的字典,其键来自可迭代对象,值由用户提供。 键可以是集合、元组、字符串、列表或任何其他可迭代对象,我们可以用它们来创建字典。

可迭代对象是可以迭代(循环)的对象。 可迭代对象中的元素将成为字典的键。

语法

以下是 Python 字典 fromkeys() 方法的语法:

dict.fromkeys(seq, [value])

参数

此方法接受两个参数,如下所示

  • seq: 序列是一个可迭代对象,它将使用键来形成一个新的字典。

  • value (可选): 它是字典中每个键的值。 如果未指定值,则其默认值为 None。

返回值

此方法返回一个新字典。

示例

如果未提供字典的值,则此方法返回默认值“None”。

以下示例显示了 Python 字典 fromkeys() 方法的用法。 在这里,我们提供了键:'name'、'age' 和 'sex'。 未为提供的键指定值。 因此,使用 fromkeys() 方法将默认值 None 分配给每个键。

seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print ("New Dictionary : %s" %  str(dict))

运行上述程序时,会产生以下结果:

New Dictionary : {'name': None, 'age': None, 'sex': None}

示例

如果我们将值作为参数传递给此方法,它将针对每个键返回相同的值。

现在,我们将值“10”作为参数传递给 fromkeys() 方法。 结果,此值将指定给字典的每个键。

seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
# providing a value 10
value = 10
dict = dict.fromkeys(seq, value)
print ("New Dictionary : %s" %  str(dict))

以下是上述代码的输出:

New Dictionary : {'name': 10, 'age': 10, 'sex': 10}

示例

在下面的代码中,列表用作字典的值。 可迭代列表是一个可变对象,这意味着它可以被修改。 在这里,列表值使用 append() 函数进行更新。 然后,键将与更新的值以及先前提供的值一起分配。 这是因为每个元素指向内存中的同一地址。

the_keys = {'b', 'c', 'd', 'f', 'g' }
# the list
value = [5]
consonants = dict.fromkeys(the_keys, value)
print('The consonants are: ', consonants)
# updating the value of the list
value.append(10)
print('The updated dictionary is: ',consonants)

上述代码的输出如下:

The consonants are:  {'c': [5], 'b': [5], 'f': [5], 'g': [5], 'd': [5]}
The updated dictionary is:  {'c': [5, 10], 'b': [5, 10], 'f': [5, 10], 'g': [5, 10], 'd': [5, 10]}

示例

在下面的示例中,创建一个字典,其中字符串用作键参数。 因此,使用 fromkeys() 方法,字符串的每个字符都将作为结果字典中的键。 值“King”分配给所有键。

Animal = 'Lion'
value = 'King'
print('The string value is: ', value)
d = dict.fromkeys(Animal, value)
print('The dictionary is: ', d)

执行上述代码时,我们得到以下输出:

The string value is:  King
The dictionary is:  {'L': 'King', 'i': 'King', 'o': 'King', 'n': 'King'}
python_dictionary.htm
广告