Использование списка:
em = "fname lname <email>; fname2 lname2 <email2>; fnameN lnameN <emailN>"
email_list = [entry.split()[-1][1:-1] for entry in em.split(';')]
# email_list:
# ['email', 'email2', 'emailN']
Разбивка :
for entry in em.split(';')
Сначала он разделяет исходную строку точкой с запятой.
entry.split()
Далее он берет каждую запись, снова разбивает ее, на этот раз по пробелу.
entry.split()[-1]
Затем он выбирает последнюю запись из разделения, которая является вашим электронным письмом.
entry.split()[-1][1:-1]
Это берет ваше электронное письмо в форме "<email@addr.com>
" и выбирает строку, содержащуюся в угловых скобках ([1: -1] соответствует выбору от второго символа до второгокого).