所以我给出的赋值是创建一个函数,它将x作为参数,根据(我假设的)输入字母的序数值来分配数字。请记住,只能输入非重复的小写字母。
由于“a< b”和“a< c”,如果我要在此函数中输入字符串“abc”,则应返回“123”。如果我输入“zad”,则应返回“312”。换句话说,最小的字母从1开始,下一个最小,2,等等。
我应该如何构建符合此标准的功能?我想我会包括从ord [a]到ord [z]的范围,然后包含一个elif循环语句。有什么指针吗?
答案 0 :(得分:2)
您可以构建一个字典,将每个字符映射到原始字符串中不同字符的排序列表中的位置:
def perm(s):
indexes = {x:i+1 for i,x in enumerate(sorted(set(s)))}
return ''.join(str(indexes[x]) for x in s)
print(perm('abc'))
print(perm('zad'))
答案 1 :(得分:0)
str1 = "bca"
print (sorted([str1.index(x)+1 for x in sorted(str1)]))
首先对它们进行排序并打印它们的排序索引。 Carefull,+1来索引,因为索引从0
开始。