Найти - Пользователи
Полная версия: Преобразовать строку в формат
Начало » Python для новичков » Преобразовать строку в формат
1
nnnrrrzzz
Всем привет!
Программирование начал изучать совсем недавно…может, для кого-то и глупый вопрос.
Суть задачи в следующем:

Преобразовать строку в формат, приведенный после каждой переменной с исходным кодом
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
otv1 = “1г, 2в, 3д, 4д, 5в, 6а, 7г, 8б, 9д, 10в, 11б, 12д, 13в, 14а, 15г, 16а, 17в, 18б, 19д, 20г”

1.4
1.3
1.5
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
otv4 = “61 - плоды; 62 - наркотические возбуждающие средства; 63 - приборы; 64 - органы чувств; 65 - отражение; 66 - произведение искусства; 67 - сила; 68 - зародыши; 69 - символы; 70 - водные животные; 71 - органические потребности; 72 - живые организмы; 73 - металлические изделия; 74 - положение в пространстве; 75 - пожелания (санкции); 76 - меры воспитания”

61.(плоды)
62.(наркотические возбуждающие средства)
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..
otv5 = “77(85), 78(630), 79(235), 80(24), 81(36), 82(60), 83(35), 84(50), 85(720), 86(84), 87(52), 88(9), 89(45), 90(60), 91(16), 92(26), 93(36), 94(5), 95(42), 96(4)”

77.85
78.630
79.235
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
evilempirer
Вы явно наркотических плодов перебрали =) Опишите проблему нормально что на входе и что надо получить на выходе!
nnnrrrzzz
Вход
otv1 = “1г, 2в, 3д, 4д, 5в, 6а, 7г, 8б, 9д, 10в, 11б, 12д, 13в, 14а, 15г, 16а, 17в, 18б, 19д, 20г”

Выход
1.4
1.3
1.5
_______________________________________________________________________________________________________________________________________________________
Вход
otv4 = “61 - плоды; 62 - наркотические возбуждающие средства; 63 - приборы; 64 - органы чувств; 65 - отражение; 66 - произведение искусства; 67 - сила; 68 - зародыши; 69 - символы; 70 - водные животные; 71 - органические потребности; 72 - живые организмы; 73 - металлические изделия; 74 - положение в пространстве; 75 - пожелания (санкции); 76 - меры воспитания”

Выход
61.(плоды)
62.(наркотические возбуждающие средства)
_______________________________________________________________________________________________________________________________________________________
Вход
otv5 = “77(85), 78(630), 79(235), 80(24), 81(36), 82(60), 83(35), 84(50), 85(720), 86(84), 87(52), 88(9), 89(45), 90(60), 91(16), 92(26), 93(36), 94(5), 95(42), 96(4)”

Выход
77.85
78.630
79.235
pill
В чем суть первого преобразования так и не понял, по поводу второго тоже могу ошибаться но:
list_of_tuples = re.findall('(\d+) - (.+?);', otv4)
на выходе получаем список кортежей:
>>> for i in list_of_tuples:
print
for j in i:
print j,
61 плоды
62 наркотические возбуждающие средства

74 положение в пространстве
75 пожелания (санкции)

ну и дальше с ними соответственно можно делать что-то полезное.
Или не то?

UPD:
для третьего варианта:
>>> re.findall('(\d+)\((\d+)\)', otv5)
если нужно получить список строк вида первое.второе, тогда .join поможет…
res = ['.'.join(tup) for tup in ls]
nnnrrrzzz
ничего делать с ними не нужно потом
“otv4 = ”61 - плоды; 62 - наркотические возбуждающие средства;…“ - это в коде
”61.(плоды)…" - вывод на монитор
pill
nnnrrrzzz
ничего делать с ними не нужно потом
“otv4 = ”61 - плоды; 62 - наркотические возбуждающие средства;…“ - это в коде
”61.(плоды)…" - вывод на монитор
import re
otv4 = "61 - плоды; 62 - наркотические возбуждающие средства; 63 - приборы; 64 - органы чувств; 65 - отражение; 66 - произведение искусства; 67 - сила; 68 - зародыши; 69 - символы; 70 - водные животные; 71 - органические потребности; 72 - живые организмы; 73 - металлические изделия; 74 - положение в пространстве; 75 - пожелания (санкции); 76 - меры воспитания"
list_of_tuples = re.findall('(\d+) - (.+?);', otv4)
result = ['%s.(%s)'%tup for tup in list_of_tuples]
for i in result[:5]:
print i

61.(плоды)
62.(наркотические возбуждающие средства)
63.(приборы)
64.(органы чувств)
65.(отражение)


otv5 = "77(85), 78(630), 79(235), 80(24), 81(36), 82(60), 83(35), 84(50), 85(720), 86(84), 87(52), 88(9), 89(45), 90(60), 91(16), 92(26), 93(36), 94(5), 95(42), 96(4)"
list_of_tuples = re.findall('(\d+)\((\d+)', otv5)
result = ['%s.%s'%tup for tup in list_of_tuples]
for i in result:
print i

77.85
78.630
79.235
...
93.36
94.5
95.42
96.4
для первого варианта нужно преобразовать букву в число…
nnnrrrzzz
спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB