python fromkeys的用法_Python 字典 fromkeys() 使用方法及示例

Python 字典 fromkeys() 使用方法及示例

fromkeys()方法根据给定的元素序列创建一个新字典,该字典具有用户提供的值。

fromkeys()方法的语法为:dictionary.fromkeys(sequence[, value])

fromkeys()参数

fromkeys()方法采用两个参数:sequence -用作新字典键的元素序列

value(可选) -为字典的每个元素设置的值

fromkeys()返回值

fromkeys()方法返回一个新字典,该字典具有给定的元素序列作为字典的键。

如果设置了value参数,则新创建的字典的每个元素都将设置为提供的value值。

示例1:根据键序列创建字典

示例# 元音键

keys = {'a', 'e', 'i', 'o', 'u' }

vowels = dict.fromkeys(keys)

print(vowels)

运行该程序时,输出为:{'a': None, 'u': None, 'o': None, 'e': None, 'i': None}

示例2:根据具有值的键序列创建字典

示例# 元音键

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:从可变对象列表创建字典

示例# 元音键

keys = {'a', 'e', 'i', 'o', 'u' }

value = [1]

vowels = dict.fromkeys(keys, value)

print(vowels)

# 更新的值

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等,则当修改可变对象时,序列中的每个元素也会更新。

这是因为,为每个元素分配了对同一对象的引用(指向内存中的同一对象)。

为避免此问题,我们使用字典理解。

示例# 元音键

keys = {'a', 'e', 'i', 'o', 'u' }

value = [1]

vowels = { key : list(value) for key in keys }

# 你也可以使用 { key : value[:] for key in keys }

print(vowels)

# 更新的值

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不是分配给元素,而是从中创建一个新列表,然后将其分配给字典中的每个元素。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值