python - 字符串方法(python) - 对句子的字母进行排序
问题描述
尝试对下面句子的字母进行排序(未到位)并打印出来。
“敏捷的棕色狐狸跳过了懒狗”
到目前为止,这就是我所拥有的,并试图弄清楚如何在一开始就没有空格的情况下获得它。此外,大写“T”位于前面。它不应该在小写't'旁边吗?我该怎么做?我print(''.join(sorted(a)))
通过搜索得到了这条线,并认为它有效,但想了解如何/为什么。任何帮助表示赞赏。
输入
a = "The quick brown fox jumps over the lazy dog"
print(''.join(sorted(a)))
输出
Tabcdeeefghhijklmnoooopqrrstuuvwxyz
解决方案
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.
推荐阅读
- java - 在android studio-Java中从python服务器接收数据到客户端
- javascript - 如何使前后按钮粘在两侧
- c++ - 数组循环没有输出
- list - 将列表和原子作为参数的方案函数并返回原子出现的第一个位置的索引
- symfony - 使用查询构建器优先考虑语言字段的教义左连接
- apache-spark - 写入/读取中间数据帧比缓存更好。这是预期的行为吗?
- ruby-on-rails - 可以在 Ruby 或 Rails 中将其作为单行来执行
- rabbitmq - 从性能角度看 RabbitMQ Exchange 是什么意思
- ruby-on-rails - 在命名空间 api (Api::V1) 中,我无法访问序列化程序
- objective-c - 以编程方式识别带有 Notch 的 iPhone