python - 根据范围设置字典值

标签 python dictionary range

index = {
    u'when_air': 0,
    u'chrono': 1,
    u'age_marker': 2,
    u'name': 3
}

我怎样才能使这种方式比手动设置每个值更美观(和清晰)?

喜欢:

index = dict_from_range(
    [u'when_air', u'chrono', u'age_marker', u'name'],
    range(4)
)

最佳答案

您可以提供 zip() 的结果到内置 dict() :

>>> names = [u'when_air', u'chrono', u'age_marker', u'name']
>>> print(dict(zip(names, range(4))))
{'chrono': 1, 'name': 3, 'age_marker': 2, 'when_air': 0}

zip() 将返回一个元组列表,其中每个元组都是 namesrange(4 )dict() 知道如何从中创建字典。

请注意,如果您将长度不均匀的序列提供给 zip(),结果将被截断。因此,使用 range(len(names)) 作为参数可能是明智的,以保证相等的长度。

>>> print(dict(zip(names, range(len(names)))))
{'chrono': 1, 'name': 3, 'age_marker': 2, 'when_air': 0}

关于python - 根据范围设置字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23359099/

相关文章:

c++ - 两次相同的for循环 : one compiles, 另一个没有

iphone - UILocalNotification 崩溃

perl - 如何在 Word 中复制和粘贴一系列表格?

python - 如何在 Robot Framework 中比较两个字符串是否相等

Python单元测试突然退出

java - 按某些键值删除重复项

javascript - 将元素插入范围会清除 Chrome 中的选择

axapta - 手动添加过滤器时如何保留表单数据源的范围?

python - Python Map Reduce Mr工作

Python 3.6 异或文件解密