1
我知道在這個主題上還存在其他問題;然而,我一直沒有成功將這些答案適用於我的代碼。我需要幫助的是在我的第二和第三個打印函數中排序詞典,這些打印函數會按擊球順序排序詞典,這是詞典代碼中的中間值,例如。 ['DH',,299]。我的代碼如下:我很難按值排序字典
def main():
print('Rays Starters','\n')
starters = {'DeJesus': ['DH', 6, 299],
'Loney': ['1B', 4, 222],
'Rivera': ['C', 9, 194],
'Forythe': ['2B', 5, 304],
'Souza Jr': ['RF', 2, 229],
'Longoria': ['3B', 3, 282],
'Cabrera': ['SS', 7, 214],
'Kiermaier': ['CF', 1, 240],
'Guyer': ['LF', 8, 275]}
for key, value in starters.items():
print(key, value)
print('\n')
print("Today's lineup", '\n')
for key, value in (starters.items()):
print('Batting {}: {} {}, current avg: {}'.format(value[1], value[0], key, value[2]))
print('\n')
print('Lineup change', '\n')
del starters['DeJesus']
del starters['Rivera']
starters2 = {'Wilson': ['C', 9, 152], 'Bechham': ['DH', 6, 200]}
starters.update(starters2)
for key, value in starters.items():
print('Batting {}: {} {}, curent avg: {}'.format(value[1], value[0], key, value[2]))
main()
僅供參考,我的電流輸出爲:
Rays Starters
Forythe ['2B', 5, 304]
Loney ['1B', 4, 222]
Longoria ['3B', 3, 282]
Kiermaier ['CF', 1, 240]
Guyer ['LF', 8, 275]
Rivera ['C', 9, 194]
DeJesus ['DH', 6, 299]
Cabrera ['SS', 7, 214]
Souza Jr ['RF', 2, 229]
Today's lineup
Batting 5: 2B Forythe, curent avg: 304
Batting 4: 1B Loney, curent avg: 222
Batting 3: 3B Longoria, curent avg: 282
Batting 1: CF Kiermaier, curent avg: 240
Batting 8: LF Guyer, curent avg: 275
Batting 9: C Rivera, curent avg: 194
Batting 6: DH DeJesus, curent avg: 299
Batting 7: SS Cabrera, curent avg: 214
Batting 2: RF Souza Jr, curent avg: 229
Lineup change
Batting 5: 2B Forythe, curent avg: 304
Batting 9: C Wilson, curent avg: 152
Batting 4: 1B Loney, curent avg: 222
Batting 3: 3B Longoria, curent avg: 282
Batting 1: CF Kiermaier, curent avg: 240
Batting 8: LF Guyer, curent avg: 275
Batting 6: DH Bechham, curent avg: 200
Batting 7: SS Cabrera, curent avg: 214
Batting 2: RF Souza Jr, curent avg: 229
,完美的工作。 因此,「x:x [1] [1]」是如何知道調用該特定值的,而不是代碼中數字高得多的擊球平均數#(例如300)。 –
如果你想寫單元測試,提取'key_func'是一個好主意。由於某種原因,Guido使得lambda語法變得醜陋 –