Изменить строку для непроверенного образца (Python) - PullRequest
0 голосов
/ 03 мая 2020

Learning Python, натолкнулся на требовательное начальное упражнение.

Допустим, у вас есть строка, состоящая из "блоков" символов, разделенных символом ";". Примером может быть:

cdk; 2 (c) 3 (i) s; c

И вы должны вернуть новую строку на основе старый, но в соответствии с определенным шаблоном (который также является строкой), например:

c? *

Этот шаблон означает, что каждый блок должен начать с 'c', '?' символ должен быть переключен на другую букву и, наконец, '*' на произвольное количество букв.

Поэтому, когда шаблон применяется, вы возвращаете что-то вроде:

cdk; cciiis

Другой пример:

строка: 2 (a) bxaxb; ab

шаблон: a? * B

результат: aabxaxb

Моя очень грубая попытка привела к следующему:

def switch(string,pattern):
d = []
for v in range(0,string):
    r = float("inf")
    for m in range (0,pattern):
        if pattern[m] == string[v]:
            d.append(pattern[m])
        elif string[m]==';':
            d.append(pattern[m])
        elif (pattern[m]=='?' & Character.isLetter(string.charAt(v))):
            d.append(pattern[m])
return d

Советы?

1 Ответ

0 голосов
/ 03 мая 2020
  • Чтобы разбить строку, вы можете использовать функцию split () .

  • Для определения шаблона в строках вы можете использовать регулярные выражения ( регулярное выражение) с re библиотекой .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...