[問題] 關於字典以及序列的排序問題

看板Python作者 (達)時間8年前 (2016/01/27 19:01), 編輯推噓6(606)
留言12則, 5人參與, 最新討論串1/2 (看更多)
各位大大好, 今天在練習python時遇到一個問題,我在google上, 卻不知道該怎麼搜尋並解決此問題, 因此上來麻煩各位大大幫忙解惑 http://miupix.cc/pm-ZOMMR8 這是我的程式圖 http://miupix.cc/pm-ZOUDX5 這是我執行出來的圖 有兩個問題想要請教一下各位, 1. 為何他呈獻的順序,跟我輸入的順序不同 不才用很多組數據輸入進去想要找他的規則 (該圖為其中一組) 但最後還是鍛羽而歸,想請各位大大幫忙解惑。 2. 其實這支程式 我最後是想要做成 Student Grade student1 A student2 D student3 B student4 A 只是我不清楚要怎麼弄成這個樣子出來, 因為這些人名都是使用者手動輸入, 系統應該不會那麼早就是知道,key跟value的值 但除了dict['key'] = value 這樣單獨把他呈現出來, 我找不到其他方法。 懇請各位大大開示,不才該如何處理或是搜尋關鍵字要打甚麼? 我閱讀的書 是Python 入門經典 此為他的練習題之一 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.206.130.82 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1453892481.A.0D9.html

01/27 20:15, , 1F
hash table不會按照順序 list才會
01/27 20:15, 1F

01/27 20:15, , 2F
當然若你要按照順序 PYTHONE也有內建的module可以用
01/27 20:15, 2F

01/27 22:17, , 4F
真要有序字典的話有內建OrderedDict可以用
01/27 22:17, 4F

01/27 23:34, , 5F
dict.keys()取出key 把key排序 再用排序過的key取值
01/27 23:34, 5F

01/28 14:55, , 6F
你有用到字典,書上應該有提醒你dict裡面是沒順序的
01/28 14:55, 6F

01/28 14:56, , 7F
除非將key抓出來排,或使用OrderedDict才可以依序列出
01/28 14:56, 7F

01/28 15:15, , 8F
2.要分別抓key及value在迴圈就可以做了
01/28 15:15, 8F

01/28 15:17, , 9F
for k, v in student.items() 不用另設個si
01/28 15:17, 9F

01/28 15:18, , 10F
要做出格式需要字串格式化 '%-10s%-10s' % (k, v)
01/28 15:18, 10F

01/28 15:26, , 11F
如果你要依名稱排 for k, v in sorted(student.items())
01/28 15:26, 11F

01/28 22:50, , 12F
謝謝各位大大的回答,學到了很多!!真的非常感謝
01/28 22:50, 12F
文章代碼(AID): #1MgAE13P (Python)
文章代碼(AID): #1MgAE13P (Python)