How many instances of "a" are there in:
Q: Ошибка: string index out of range Есть список строк:
Иванов Иван
Петров Петр Петрович

Их нужно привести к единому знаменателю:
Иванов И.
Петров П.П.

Пользовалась вот такой функцией:
def conv_name(name):
    last, _, rest = name.partition(' ')
    rest = rest.replace('.', '. ')
    first, _, patron = rest.partition(' ')
    first = first[0] + '.'
    res = f'{last} {first}'
    if patron:
        res += f'{patron[0]}.'
    return res

authors_b = [conv_name(name) for x in [authors_a] for name in x]

Но теперь почему-то выходит ошибка:
    first = first[0] + '.'
IndexError: string index out of range

Подскажите, пожалуйста, как можно её исправить? Заранее благодарна за ответ

A: Попробуйте:
def conv_name(name):
    parts = name.split()
    return parts[0] + " " + ''.join(x[0] + '.' for x in parts[1:])


authors = ["Иванов Иван", "Петров Петр Петрович"]
items = [conv_name(x) for x in authors]
print(items)  # ['Иванов И.', 'Петров П.П.']


user
The passage contains 29 "a"s.
assistant