返回已排序单词的列表

2024-06-09 18:26:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

我的函数应该返回一个新的排序值列表,但是它必须排除第一个字母的unicode小于或等于以下字母的单词。例如,“door”会追加到新列表中,因为d'<;='o'和'o'<;='o'和'o'<;='r'。这是我目前为止写的,但我没有运气。在

^{pr2}$

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


Tags: 函数lt列表排序顺序字母unicode单词
2条回答

你需要另一个循环,所以:

def sorted_words(wordlist):
result = []
for word in wordlist:
    keepWord = True
    for letter in word[1:]:
        if word[0] >= letter:
            keepWord = False
            break
    if keepWord:
        result.append(word)
return result


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

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

标准说明与示例不符。如果标准是“第一个字母的unicode编码低于或等于以下字母”,则应包括单词“abacus”。但是,您为“door”提供的解释似乎是“字符的unicode值应该(不是严格地)按升序排列”

(“严格升序意味着<,而非严格表示在and元素及其后面的元素之间<=)。在

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

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)

对于第二个条件,使用

^{pr2}$

相关问题 更多 >