python根據字典內的值實現排序
“”"
要求:
2020/11/1,
看了書本130之後的內容,發現還是不會,於是我搜了一篇優秀的部落格
no1=dict(name1="餘浩然",avg1="80")
no2=dict(name2="呂布",avg2="80")
no3=dict(name="張飛",avg="90")
dir1=dict(no1,**no2)
b=zip(dir1.values(),dir1.keys())
c=list(sorted(b))
print(c)
因為涉及到排序問題,首先想到了python的內建函式sorted ,
比如對列表進行排序 ,排序的結果是對列表按照從小到大來排列
那麼是不是也可以使用sorted方法對字典進行排序呢 ,結果只對字典的鍵進行了排序 ,
是按照鍵的ASCii碼來排列的 ,不是按照值,何況結果中連值都沒有展示出來。
所以直接使用sorted 函式對字典按照值得大小來排序是行不通的 。
那麼需要展示的結果應該是包含值和鍵的 ,想到了元組(a,34)>(a,35) 對元組進行比較大小 ,
而如果把鍵放在第一個的話,還是比較的鍵的大小,而不是值,所以 需要把值放在第一個,鍵放在後面。
思路來了,把字典的資料轉換為元祖 使用zip函式。zip(值,鍵)
想得到字典的值和鍵 非常簡單 即d.keys()和d.values()
zip(b.values(),b.keys())就把字典資料轉換成了元組資料。
因為用的直譯器的版本是3.7 對zip的用法做了修改,可以看到返回的是一個物件,如果想要得到list可以用list(b),進行強轉,得到想要的結果。
但這樣得出的結果是
[(‘80’, ‘avg1’), (‘80’, ‘avg2’), (‘餘浩然’, ‘name1’), (‘呂布’, ‘name2’)]
只是對字典內的值排序了,但沒有考慮到鍵和值之間的關係
所以我這種想法可能在現階段,甚至是在目前,沒有辦法利用一種函式什麼的給排序的
所以只能換一個思路:我把餘浩然直接當鍵值使用,把80當做成績肯定是可以排序的吧程式碼如下:
“”"
dir1=dict(餘浩然="80",張飛="90",呂布="80")
b=zip(dir1.values(),dir1.keys())
c=list(sorted(b,reverse = True))
print(c)
得到結果[(‘80’, ‘餘浩然’), (‘80’, ‘呂布’), (‘90’, ‘張飛’)],成功對其排序,但感覺太簡單了,不是老師要求的那種
強化版本,字典裡面套字典,有想法是好的,可惜這個沒法實現,待後續進行解決
dir1=dict(餘浩然={"avg":85,"math":80,"English":90},張飛={"avg":77.5,"math":75,"English":80},呂布={"avg":85,"math":95,"English":75})
b=zip(dir1.keys())
c=list(sorted(b,reverse = True))
print(c)
相關文章
- 根據字典中值得大小,對字典中的項排序排序
- pandas列值根據字典批量替換
- JavaScript 根據物件鍵值進行排序JavaScript物件排序
- python 對字典的值進行排序Python排序
- 二維陣列根據鍵的值進行排序陣列排序
- 深入 Python 字典的內部實現Python
- map自定義排序,根據鍵或者值排隊排序
- Map根據Value排序排序
- WPF TextBlock根據值顯示不同的內容或格式BloC
- js根據時間排序JS排序
- List根據時間排序排序
- python技巧 使用值來排序一個字典Python排序
- python中的字典賦值操作怎麼實現?Python賦值
- Laravel-admin 如何根據 select 的值實現動態 formLaravelORM
- 根據字典,轉成相應的進位制
- python 字典排序Python排序
- Python 如何根據給定模型計算權值Python模型
- Python如何根據給定模型計算權值Python模型
- 根據陣列的值刪除元素陣列
- 根據業務能力實現DDD建模 - trond
- 根據陣列中物件進行排序陣列物件排序
- 城市列表-根據拼音首字母排序排序
- Laravel 根據 relation sum 結果排序的小技巧Laravel排序
- 根據JavaScript中原生的XMLHttpRequest實現jQuery的AjaxJavaScriptXMLHTTPjQuery
- Python實現建立字典Python
- Python 字典實現原理Python
- python 實現有序字典Python
- JAVA裡List集合中的物件根據物件的某個屬性值降序或者升序排序Java物件排序
- 爬蟲實現:根據IP地址反查域名爬蟲
- popWindow 根據內容計算高度
- 根據編號展開內容
- php 陣列根據元素從小到大排序PHP陣列排序
- js根據class值獲取元素物件JS物件
- 根據選擇的物料顯示其特性值
- JSP頁面根據後臺傳值不同顯示不同內容JS
- Python 雜湊表的實現——字典Python
- python-字典-如何取出字典中的所有值Python
- python怎麼對字典排序Python排序