我正在研究scramble排序函数,它有两个参数:
它返回根据第二个参数排序的字符串列表。
例如:
scramble(['abc', 'bac', 'abb'], 'cba')
应该返回
['bac', 'abc', 'abb']
此调用中的第二个参数显示用于比较目的,c< b<一个。所以以'b'开头的单词出现在以'a'开头的单词之前;并且'abc'出现在'abb'之前,因为忽略了公共前缀('ab'),'c'出现在'b'之前。
def scramble(l : [str], ordering : str) -> [str]:
for i in ordering:
for h in l:
l.sort(key = h.index(i))
break
return l
我的代码不起作用,我只想通过列表中项目的字母索引(根据顺序)对列表进行排序。有人可以帮我修改我的代码吗?
答案 0 :(得分:0)
def scramble(words, order):
return sorted(words, key = lambda word: [order.index(char) for char in word])