Python

Как сделать так чтобы цифры всегда были после слов?

например :
a = 87 apples 12 pears 105 tomatos
и чтобы получилось вот так после команды print(a):
apples 87 pears 12 tomatos 105
Rejevali Mahmud Uulu
Rejevali Mahmud Uulu
366
С помощью regexp в Python
import re

s = '87 apples 12 pears 105 tomatos'
pattern = re.compile(r'(?P[dig]\d+)\s(?P[word]\w+)')

for match in pattern.finditer(s):
~~~~print(match.group('word'), match.group('dig'), end='') # вместо print() может быть любая необходимая функция
>>apples 87 pears 12 tomatos 105
Филипп Воробьев
Филипп Воробьев
22 178
Лучший ответ
Филипп Воробьев более простой вариант
print(re.sub(r'(?P[dig]\d+) (?P[word]\w+)', r'\g[word] \g[dig]', s))
Регулярками замени. Нагуглишь как их в Python юзать.
https://www.google.com/search?q=python+regular+expression+replace
На Javascript легкий алгоритм придумался быстро
var str = '87 apples 12 pears 105 tomatos';
console.log(str);
var strNew = '';
var str2 = str.split(' ');
console.log(str2);
for (var i = 0; i < str2.length; i++) {
if (!isNaN(parseInt(str2[i])) && isNaN(parseInt(str2[i+1]))) {
strNew += str2[i+1];
strNew += ' ';
strNew += str2[i];
strNew += ' ';
}
};
console.log(strNew);
>>>
87 apples 12 pears 105 tomatos
Array(6) [ "87", "apples", "12", "pears", "105", "tomatos" ]
apples 87 pears 12 tomatos 105
Как бы не звучало странно, но задача не самая простая. Много неизвестных. Самое главное неизвестно на каком языке программирования. с вытекающими. А так надо найти пары цифры буквы через пробел и в них уже менять местами .
А самое простое, это если в начале число, как тут:
87 apples 12 pears 105 tomatos
то просто поставить его в конец строки
apples 12 pears 105 tomatos 87
и это получится правильно, т. к. "цифры" идут после "слов"..
Nemo Nemo
Nemo Nemo
22 439
a = '87 apples 12 pears 105 tomatos '

A = a.split()

for i in range(0, len(A)-1, 2):
~~~~print(A[i+1], A[i], end=' ')
Ando Grigoryan
Ando Grigoryan
21 729

Похожие вопросы