Python 習題 字典排序

2022-09-16 08:09:14 字數 2459 閱讀 2905

[習題] 對此字典分別按照value 和key 如何排序?

dic1 =

in [38]: dic1 = 

...: print(sorted(zip(dic1.values(),dic1.keys()))) #按value的值公升序

...: print(sorted(zip(dic1.values(),dic1.keys()),reverse=true)) #按value的值降序

...:

...: print(sorted(zip(dic1.keys(),dic1.values()))) #按key的ascii碼公升序

...: print(sorted(zip(dic1.keys(),dic1.values()),reverse=true)) #按key的ascii碼降序

...:

...: print(sorted(dic1.items(),key=lambda x:x[1],)) #按value的值公升序

...: print(sorted(dic1.items(),key=lambda x:x[1],reverse=true)) #按value的值降序

...:

...: print(sorted(dic1.items(),key=lambda x:x[0],)) #按key的ascii碼公升序

...: print(sorted(dic1.items(),key=lambda x:x[0],reverse=true)) #按key的ascii碼降序

...:

[(40, 'and'), (49, 'os'), (54, 'a'), (60, 'is'), (124, 'the'), (139, 'path')]

[(139, 'path'), (124, 'the'), (60, 'is'), (54, 'a'), (49, 'os'), (40, 'and')]

[('a', 54), ('and', 40), ('is', 60), ('os', 49), ('path', 139), ('the', 124)]

[('the', 124), ('path', 139), ('os', 49), ('is', 60), ('and', 40), ('a', 54)]

[('and', 40), ('os', 49), ('a', 54), ('is', 60), ('the', 124), ('path', 139)]

[('path', 139), ('the', 124), ('is', 60), ('a', 54), ('os', 49), ('and', 40)]

[('a', 54), ('and', 40), ('is', 60), ('os', 49), ('path', 139), ('the', 124)]

[('the', 124), ('path', 139), ('os', 49), ('is', 60), ('and', 40), ('a', 54)]

知識點: zip(),sorted(),lambda

zip函式接受任意多個(包括0個和1個)序列作為引數,返回乙個tuple列表。

用法: zip(iter1 [,iter2 [...]]) --> zip object:

in [79]: a = 'abcdefg'

in [80]: b = '1234567890'

in [81]: zip(a,b)

out[81]: in [82]: c = zip(a,b)

in [83]: for i in c:

...: print(i)

...:

('a', '1')

('b', '2')

('c', '3')

('d', '4')

('e', '5')

('f', '6')

('g', '7')

對指定可迭代物件iterable 排序並返回乙個新物件,不改變原資料;key 可以設定為按str、int或者指定值(如字典的value)排序,預設是none,將按照預設物件型別排序,如果物件是str,則按ascii 碼排序,如果是物件是int 數字,則按數字排序;reverse 預設公升序(false),true 為降序。

sorted(iterable, key=none, reverse=false)

最後兩處lambda 比較繞,可以在( )這個**邊除錯邊分析x 和x[1] 的值是什麼。

以下截圖中,lambda表示式中x的值是乙個tuple("and",40),x[1] 就表示第1個元素(40),最終sorted 就是按字典的value 來進行排序。

python練習題 字典和集合

題目內容 實現逆向最大匹配分詞演算法,即從右向左掃瞄,找到最長的詞並切分。如句子 研究生命的起源 逆向最大匹配分詞演算法的輸出結果為 研究 生命 的 起源 輸入格式 第一行是以utf 8格式輸入的詞表,每個詞之間以空格分隔。接下來是若干行以utf 8格式輸入的中文句子。輸出格式 以utf 8格式輸出...

Python習題 字串

一 python中的字串 1 介紹 字串可以包含數字 字母 中文字元 特殊符號,以及一些不可見的控制字元,如換行符和製表符。2 字串中的常見轉義字元 符號用途 在行尾時 續行符 反斜槓符號 單引號 雙引號 b退格 backspace e轉義 000空 n 換行 v 縱向製表符 t橫向製表符 r回車 ...

C 每日一題 字典排序

題目描述 給定n個字串,請對n個字串按照字典序排列。輸入描述 輸入第一行為乙個正整數n 1 n 1000 下面n行為n個字串 字串長度 100 字串中只含有大小寫字母。輸出描述 資料輸出n行,輸出結果為按照字典序排列的字串。示例1輸入 9cap tocat card twotoo upboat bo...