如何根据字典中的单词值对字符串进行排序?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
提交
取消