например :
a = 87 apples 12 pears 105 tomatos
и чтобы получилось вот так после команды print(a):
apples 87 pears 12 tomatos 105
Python
Как сделать так чтобы цифры всегда были после слов?
С помощью 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
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
Регулярками замени. Нагуглишь как их в Python юзать.
https://www.google.com/search?q=python+regular+expression+replace

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
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
и это получится правильно, т. к. "цифры" идут после "слов"..
А самое простое, это если в начале число, как тут:
87 apples 12 pears 105 tomatos
то просто поставить его в конец строки
apples 12 pears 105 tomatos 87
и это получится правильно, т. к. "цифры" идут после "слов"..
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=' ')
A = a.split()
for i in range(0, len(A)-1, 2):
~~~~print(A[i+1], A[i], end=' ')
Похожие вопросы
- Какой процент счастливых билетов в рулоне? Это когда сумма первых трёх цифр равна сумме последних трех
- Как запретить пользователю ввод букв или цифр в python
- Как разделить число на цифры в Python, используя только арифметические действия?
- 2^1800+2^100−2^1200−32 - записали в системе счисления с основанием 2. Сколько цифр "1" содержится в этой записи?
- На входе строка s = '3' + n * '5'. В конце сумма её цифр должна быть равна 27. Как преобразовать эту строку в число?
- Дано двузначное число. Определить: кратна ли сумма его цифр числу а. Написать блок-схему.
- Помогите с программой на Python. Сколько существует десятичных трёхзначных чисел, в которых только одна цифра кратна 3?
- 1) Напишите программу, которая будет принимать числа от пользователя и суммировать их, пока он не напишет слово «sum».
- Сортировка строки по словам
- Что обозначает это слово "elif"?
print(re.sub(r'(?P[dig]\d+) (?P[word]\w+)', r'\g[word] \g[dig]', s))