我正在尝试整理一个日历制作程序,以便我能更好地理解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,我想改变dict的值,如下所示:
平日= {'周一':5,'星期二':6,'星期三':7,'星期四':8,'星期五':9,'星期六':10,'太阳':11}
我想以最pythonic的方式做到这一点,所以像这样:
for i, j zip(key in enumerate(weekdays_1, 1), range(j, 30)):
weekdays[key] = j
但我无法让它发挥作用。是否可以这种方式使用zip?有哪些替代方案?
答案 0 :(得分:1)
您可以使用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}