在 Python3x 中使用两个迭代器压缩字典

Zip over dictionary with two iterators in Python3x

我正在尝试编写日历制作程序,以便更好地理解 python 词典。

我的小程序开发阶段是在python中表达如下伪代码:

for i in number_of_dictionary_keys, j in range(j, 30):
    change the value of number @ that key to j

所以我有一个 Ordereddict 对象:

weekdays = { 'Mon': 0, 'Tue': 0, 'Wed': 0, 'Thu': 0, 'Fri': 0, 'Sat': 0, 'Sun': 0 }

并且,假设 j = 4,我想像这样更改字典的值:

工作日 = { 'Mon': 5, 'Tue': 6, 'Wed': 7, 'Thu': 8, 'Fri': 9, 'Sat': 10, 'Sun': 11 }

我想以最 pythonic 的方式来做这件事,所以像这样:

for i, j zip(key in enumerate(weekdays_1, 1), range(j, 30)):
        weekdays[key] = j

但我无法让它工作。可以这样使用 zip 吗?有哪些替代方案?

您可以使用 keys() 遍历 dict / OrderedDict 中的所有键。这是一个常规 dict 的示例:

j = 4
weekdays = { 'Mon': 0, 'Tue': 0, 'Wed': 0, 'Thu': 0, 'Fri': 0, 'Sat': 0, 'Sun': 0 }
for key, j in zip(weekdays.keys(), range(j, 30)):
    weekdays[key] = j + 1

print(weekdays)
#{'Mon': 5, 'Tue': 6, 'Wed': 7, 'Thu': 8, 'Fri': 9, 'Sat': 10, 'Sun': 11}