gpt4 book ai didi

Python:如何按字母顺序对字符串中的字母进行排序,以区分大小写

转载 作者:太空狗 更新时间:2023-10-30 01:50:36 26 4
gpt4 key购买 nike

我正在尝试以特定方式对字符串中的单词进行排序:在我下面的代码中,输出是 "MNWdeorwy" 但我希望它是 "deMNorWwy"(所以我需要保持字母的顺序,尽管它们是大写字母或小写字母)你能帮我理解我错在哪里以及为什么吗?谢谢

wrd = "MyNewWord"

def order_word(s):
if s == "":
return "Invalid String!"
else:
c = sorted(s)
d = ''.join(sorted(c))
return d

print order_word(wrd)

我想明确指出我的问题不同于以下问题:How to sort the letters in a string alphabetically in Python : 事实上,链接中给出的答案并没有考虑字符串中大小写的区别。

最佳答案

sorted() 根据每个字符的序号进行排序。大写字母的序数低于所有小写字母。如果你想要不同的行为,你需要定义你自己的键:

c = sorted(s, key=lambda c: (c.lower(), c.islower()))

这样,c 将按 ('c', 1) 排序,而 C 将按 ('c ', 0)。两者都在 ('d', ...)('e', ...) 等之前,但是大写的 C比小写的 c 早(低)。

顺便说一下,你不应该说 d = "".join(sorted(c)) 因为 c 已经排序了。只需执行 d = "".join(c)

关于Python:如何按字母顺序对字符串中的字母进行排序,以区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36262657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com