我想相互比较不同的词。每个单词还包含一个数字,我需要根据它们所包含的数字的值将其升序排列。例如:
句子=“ T4est is2 Thi1s 3a”需要按以下顺序放置:
'Thi1s is2 3a T4est'

我试图找到每个单词中数字的值,然后比较每个数字的值,然后将单词按正确的顺序放在列表中。现在,我只能确定一个单词是否包含数字。返回true或false。

import string

sentence = " T4est is2 Thi1s 3a "

def order(sentence):
    words = sentence.split()
    for word in words:
        if word.isdigit():
            return word

print (order(sentence))


例如:
句子=“ T4est is2 Thi1s 3a”需要按以下顺序放置:
'Thi1s is2 3a T4est'

最佳答案

您可以将sorted与lambda函数一起使用。

import re
sentence = " T4est is2 Thi1s 3a "
words = sentence.strip().split(" ")
result = sorted(words, key=lambda x: int(re.search("\d+", x).group()))
# Result here is ['Thi1s', 'is2', '3a', 'T4est']
result = " ".join(result)
print(result)


返回:

"Thi1s is2 3a T4est"

关于python - 相互比较多个单词(其中也包含数字)并将其设置为升序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56561052/

10-09 21:53