2017-08-10 57 views
1

我正在嘗試將日曆製作程序放在一起,以便我可以更好地理解python字典。用Python3x中的兩個迭代器對字典進行壓縮

我的小程序的發展階段是表達以下僞代碼蟒蛇:

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,我想改變這樣的字典的值:

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

我想這樣做的最Python的方式,所以是這樣的:

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

,但我不能得到那個工作。這樣可以使用zip嗎?有什麼選擇?

+0

這看起來很有趣,但我不知道你的代碼應該如何創建一個日曆。你能否詳細解釋一下?順便說一句,如果你需要週一到週五,[itertools.cycle](https://docs.python.org/3/library/itertools.html#itertools.cycle)可能會有所幫助。 – skrx

+0

嗯,我沒有具體說明,我想自己解決這個問題 - 我做了btw!這很有用,我會記住它 – Davtho1983

回答

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}