如何根据字典中的单词值对字符串进行排序?
a = 'A B'
b = {'B':0, 'A':1}
所需结果:
c = 'B A'
我尝试过的事情:
c = sorted(a, key=b.values())
但是出现错误:
TypeError:“ dict_values”对象不可调用
是否有一种简单的方法来对字符串中的单词进行排序?
更新
使用后:
" ".join(sorted(b, key=b.get))
我得到所有的b
值,而我只想对字符串中存在的值进行排序。
a = 'A B'
b = {'B':0, 'A':1, 'C':2}
生产
'BAC`
我只需要:
'BA`
答案 0 :(得分:3)
您已接近解决方案。不幸的是,可调用与字典不同,key
必须是可调用(函数):
c = ' '.join(sorted(a.split(), key=lambda v: b[v]))
答案 1 :(得分:0)
您可以对列表进行排序,但不能对字符串进行排序,还需要将事物指定为“列表的元素”,因为字典的键不会映射到字符串...(可能是一种更好的方法对此措辞)。
无论如何,解决方案是拆分[[1;1]; [1;2]; [1;3]; [2;1]; [2;2]; [2;3]; [3;1]; [3;2]; [3;3]]
,然后应用排序:
a
输出:
c = sorted(a.split(), key=lambda x: b[x])
出于完整性考虑:
['B', 'A']