如何根據字典中的單詞值對字符串進行排序?a = 'A B'
b = {'B':0, 'A':1}期望的結果:c = 'B A'我嘗試過的:c = sorted(a, key=b.values())但出現錯誤:類型錯誤:“dict_values”對象不可調用有沒有一種簡單的方法可以對字符串中的單詞進行排序?更新使用后:" ".join(sorted(b, key=b.get))我獲得了所有b值,而我只想對字符串中存在的值進行排序。a = 'A B'b = {'B':0, 'A':1, 'C':2}生產'BAC`我只需要:'BA`
2 回答

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
您已經接近解決方案了。不幸的是,可調用與字典不同,并且key
需要是可調用(函數):
c = ' '.join(sorted(a.split(), key=lambda v: b[v]))

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
您可以對列表進行排序,但不能對字符串進行排序,您還需要將事物指定為“列表的元素”,因為字典的鍵不映射到字符串......(可能有更好的措辭方式) 。
無論如何,解決方案是拆分a
然后應用排序:
c = sorted(a.split(), key=lambda x: b[x])
輸出:
['B', 'A']
為了完整性:
" ".join(sorted(a.split(), key=lambda x: b[x]))
添加回答
舉報
0/150
提交
取消