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

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

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`


MYYA
浏览 56回答 2
2回答

慕标5832272

您已经接近解决方案了。不幸的是,可调用与字典不同,并且key需要是可调用(函数):c = ' '.join(sorted(a.split(), key=lambda v: b[v]))

喵喔喔

您可以对列表进行排序,但不能对字符串进行排序,您还需要将事物指定为“列表的元素”,因为字典的键不映射到字符串......(可能有更好的措辞方式) 。无论如何,解决方案是拆分a然后应用排序:c = sorted(a.split(), key=lambda x: b[x])输出:['B', 'A']为了完整性:" ".join(sorted(a.split(), key=lambda x: b[x]))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python