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

标签 python sorting

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

>>> 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/

相关文章:

python - 在 Django 中使用模型而不是枚举的选择

python - python 中如何检查输入是否为整数?

python - 数组中每个值相对于其他值的最小距离

python - 如何在python中的gensim中单独识别doc2vec实例

Javascript 数组排序和唯一性

android - 如何对 arraylist HashMap 进行排序

python - 在 TensorFlow 中再现 scikit-learn 的 MLPClassifier

sorting - 使用命名查询时,可分页排序不适用于 Spring Data JPA

javascript - 我想根据两个属性对对象数组进行排序

perl - 对嵌套哈希的哈希键进行排序