为了账号安全,请及时绑定邮箱和手机立即绑定

根据字典值中的单词对字符串进行排序

根据字典值中的单词对字符串进行排序

MYYA 2023-09-12 16:48:31
如何根据字典中的单词值对字符串进行排序?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]))


查看完整回答
反对 回复 2023-09-12
?
喵喔喔

TA贡献1735条经验 获得超5个赞

您可以对列表进行排序,但不能对字符串进行排序,您还需要将事物指定为“列表的元素”,因为字典的键不映射到字符串......(可能有更好的措辞方式) 。

无论如何,解决方案是拆分a然后应用排序:

c = sorted(a.split(), key=lambda x: b[x])

输出:

['B', 'A']

为了完整性:

" ".join(sorted(a.split(), key=lambda x: b[x]))


查看完整回答
反对 回复 2023-09-12
  • 2 回答
  • 0 关注
  • 54 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信