gpt4 book ai didi

Python - 按字母顺序排列单词

转载 作者:太空狗 更新时间:2023-10-29 20:42:33 25 4
gpt4 key购买 nike

程序必须打印按字母顺序排在 8 个元素中最后一个的名称。可以通过代码以任何方式输入名称/单词。我想我应该在这里使用列表和 in range()。我有一个想法,将输入名称的第一个/第二个/第三个/... 字母与前一个字母的字母进行比较,然后将其放在列表的末尾或前一个字母的前面(取决于比较), 然后重复下一个名字。最后,程序将打印列表的最后一个成员。

最佳答案

Python 的字符串比较默认是词法的,因此您应该能够调用 max 并摆脱它:

In [15]: sentence
Out[15]: ['this', 'is', 'a', 'sentence']
In [16]: max(sentence)
Out[16]: 'this'

当然,如果您想手动执行此操作:

In [16]: sentence
Out[16]: ['this', 'is', 'a', 'sentence']

In [17]: answer = ''

In [18]: for word in sentence:
....: if word > answer:
....: answer = word
....:

In [19]: print answer
this

或者你可以对你的句子进行排序:

In [20]: sentence
Out[20]: ['this', 'is', 'a', 'sentence']

In [21]: sorted(sentence)[-1]
Out[21]: 'this'

或者,将其反向排序:

In [25]: sentence
Out[25]: ['this', 'is', 'a', 'sentence']

In [26]: sorted(sentence, reverse=True)[0]
Out[26]: 'this'

但是如果你想完全手动(这太痛苦了):

def compare(s1, s2):
for i,j in zip(s1, s2):
if ord(i)<ord(j):
return -1
elif ord(i)>ord(j):
return 1
if len(s1)<len(s2):
return -1
elif len(s1)>len(s2):
return 1
else return 0

answer = sentence[0]
for word in sentence[1:]:
if compare(answer, word) == -1:
answer = word

# answer now contains the biggest word in your sentence

如果您希望它与大小写无关,请务必先在您的单词上调用str.lower():

sentence = [word.lower() for word in sentence] # do this before running any of the above algorithms

关于Python - 按字母顺序排列单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809542/

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