首页 > 解决方案 > 字符串方法(python) - 对句子的字母进行排序

问题描述

尝试对下面句子的字母进行排序(未到位)并打印出来。

“敏捷的棕色狐狸跳过了懒狗”

到目前为止,这就是我所拥有的,并试图弄清楚如何在一开始就没有空格的情况下获得它。此外,大写“T”位于前面。它不应该在小写't'旁边吗?我该怎么做?我print(''.join(sorted(a)))通过搜索得到了这条线,并认为它有效,但想了解如何/为什么。任何帮助表示赞赏。

输入

a = "The quick brown fox jumps over the lazy dog"

print(''.join(sorted(a)))

输出

    Tabcdeeefghhijklmnoooopqrrstuuvwxyz

标签: pythonstringsorting

解决方案


The character code for letter T is lower than character code for letter t, so it's before in the sorted string.

To have uppercase letters on the back, you can do:

s = "The quick brown fox jumps over the lazy dog"

s = "".join(sorted(s, key=lambda k: (k.isupper(), k)))
print(s)

Prints:

        abcdeeefghhijklmnoooopqrrstuuvwxyzT

EDIT: If you want result ...stTu..:

s = "The quick brown fox jumps over the lazy dog"

s = "".join(sorted(s, key=lambda k: (k.lower(), k.isupper())))
print(s)

Prints:

        abcdeeefghhijklmnoooopqrrstTuuvwxyz

Note: To get rid of whitespaces, you can use str.strip() afterwards.


推荐阅读