我想相互比较不同的词。每个单词还包含一个数字,我需要根据它们所包含的数字的值将其升序排列。例如:
句子=“ 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/