gpt4 book ai didi

python - 返回已排序单词的列表

转载 作者:行者123 更新时间:2023-12-01 04:03:25 28 4
gpt4 key购买 nike

我试图返回一个排序单词列表,其中字母按字母顺序排序。例如:

>>> sorted_words(["bet", "abacus", "act", "celebration", "door"])

['act', 'bet', 'door']

我的函数应该返回一个新的排序值列表,但它必须排除第一个字母的 unicode 低于或等于后续字母的任何单词。例如,“door”被追加到新列表中,因为 d' <= 'o' 且 'o' <= 'o' 且 'o' <= 'r'。这是我到目前为止所写的,但我没有运气。

def sorted_words[wordlist]:
result = []
for word in wordlist:
if word[0] <= word[1:]:
result.append(word)
print(word)

我知道这是不对的,我只是不知道如何将每个单词的第一个字母与其余字母进行比较。任何帮助将不胜感激。我还必须使用排序()方法,但我不确定如何使用它。

最佳答案

您应该将代码分为两部分:第一部分用于选择单词(根据条件),第二部分用于对所选单词进行排序。

标准的描述与示例之间存在差异。如果标准是“第一个字母的 unicode 低于或等于后续字母”,则应包含单词“abacus”。但是,您对“门”提供的解释似乎是“字符的 unicode 值应该按(不严格)升序排列”

(“严格升序表示​​ <,而非严格升序表示​​ <= 元素与其下一个元素之间)。

对于第一个条件,请使用以下代码

WORDS = ["bet", "abacus", "act", "celebration", "door"]    
list_of_words = []
for word in WORDS:
if all(word[0] <= c for c in word[1:]):
list_of_words.append(word)
list_of_words.sort()
print (list_of_words)

对于第二个条件,请使用

list2_of_words = []
for word in WORDS:
if all(c1 <= c2 for c1,c2 in zip(word[0:-1],word[1:])):
list2_of_words.append(word)
list2_of_words.sort()
print (list2_of_words)

关于python - 返回已排序单词的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36110116/

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