rstrip("@")
не работает, потому что справа от строки нет @
.
rstrip("@organization.org")
удаляет более @organization.org
при наличии O, R, G, A, N, I, Z, T, O или N в конце части имени пользователя адреса электронной почты.Помните, что rstrip()
(и его двоюродные братья) удаляют любые из перечисленных символов, а не предоставленную вами строку.
Распространенным решением является разделение на символ @
и взятиепервый элемент возвращаемого списка.
addresses = [addr.split("@", 1)[0] for addr in user_addresses]
(Именование важно. Я использовал user_addresses
вместо user_email
, потому что у вас нет электронной почты пользователей, у вас есть их электронная почта адреса.)
Общее решение создает (небольшой) временный список для каждого обработанного адреса.Эта память почти сразу же используется на следующей итерации, поэтому вряд ли она будет иметь серьезные негативные последствия.Тем не менее, если вы хотите избежать создания ненужных списков, вы можете использовать str.find()
, чтобы найти @
и выделить часть домена.
addresses = [addr[:addr.find("@")] for addr in user_addresses]