Моя функция нацелена на прием строки в качестве входных данных, а затем на вывод той же строки, напечатанной количество раз, равное количеству непустых символов в строке, со следующим непустым элементом в следующем списке с заглавной буквы. Окончательный вывод должен содержать новые строки в списке.
Пример:
Ввод: hello
Выход: ["Hello", "hEllo", "heLlo", "helLo", "hellO"]
Функция:
def cap_wave(str):
str_split = len([x for x in list(str) if x.isalpha()])
len_list = [list(str) for i in range(1, str_split+1)]
result = []
for i in range(len(len_list)):
temp = []
for t in len_list[i]:
char_modified = t
if not char_modified:
continue
else:
temp.append(char_modified)
result.append(temp)
new_nested = [[a.upper() if i == 0 else a for i, a in enumerate(b)] for b in result]
nest_joins = [''.join(x) for x in new_nested]
return nest_joins
Вышеприведенная функция удовлетворяет всем требованиям, за исключением заглавных букв следующей и только следующей буквы в следующей строке, например, ["Hello", "Hello", "Hello", "Hello", "Hello"]
. Моя интуиция говорит, что нужно рассчитывать, используя индексную нарезку, но я не уверен, как реализовать, не затрагивая ошибки диапазона индекса.