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
Советы?