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

作者: allan5411 (達)   2016-01-27 19:01:18
各位大大好,
今天在練習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 入門經典 此為他的練習題之一
謝謝各位
作者: ocean5566 (煙大屌熟男)   2016-01-27 20:15:00
hash table不會按照順序 list才會當然若你要按照順序 PYTHONE也有內建的module可以用https://docs.python.org/2/library/collections.html
作者: htc812 (大帥)   2016-01-27 22:17:00
真要有序字典的話有內建OrderedDict可以用
作者: ihon822 (批大叔)   2016-01-27 23:34:00
dict.keys()取出key 把key排序 再用排序過的key取值
作者: octantis (@.@)   2016-01-28 14:55:00
你有用到字典,書上應該有提醒你dict裡面是沒順序的除非將key抓出來排,或使用OrderedDict才可以依序列出2.要分別抓key及value在迴圈就可以做了for k, v in student.items() 不用另設個si要做出格式需要字串格式化 '%-10s%-10s' % (k, v)如果你要依名稱排 for k, v in sorted(student.items())
作者: allan5411 (達)   2016-01-28 22:50:00
謝謝各位大大的回答,學到了很多!!真的非常感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com