Мне нужно подсчитать все электронные письма в списке, однако некоторые электронные письма объединены вместе с символом |
. Они должны быть разделены, и электронные письма должны быть подсчитаны после разделения, чтобы избежать получения неточного или низкого количества частот.
У меня есть список, похожий на этот:
test = ['abc@gmail.com', 'xyz@jad.com|abc@gmail.com', 'asd@ajf.com|abc@gmail.com', 'asdf@adh.com', 'xyz@jad.com']
Я выполнил набор операций для разделения, и когда я разделяю, труба заменяется двойными кавычками в этом месте, поэтому язамените двойные одинарными кавычками, чтобы все электронные адреса были заключены в одинарные кавычки.
# convert list to a string
test_str = str(test)
# apply string operation to split by separator '|'
test1 = test_str.split('|')
print(test1)
--> OUTPUT of above print statement: ["['abc@gmail.com', 'xyz@jad.com", "abc@gmail.com', 'asd@ajf.com", "abc@gmail.com', 'asdf@adh.com', 'xyz@jad.com']"]
test2 = str(test1)
test3 = test2.replace('"','')
print(test3)
--> OUTPUT of above print statement: [['abc@gmail.com', 'xyz@jad.com', 'abc@gmail.com', 'asd@ajf.com', 'abc@gmail.com', 'asdf@adh.com', 'xyz@jad.com']]
Как теперь я могу получить количество всех электронных писем? По сути, это строка, и если это список, я мог бы использовать collection.Counter, чтобы легко получить счетчик.
Я хотел бы получить список, подобный приведенному ниже, с адресом электронной почты и счетчиком впо убыванию частоты
['abc@gmail.com': 3, 'xyz@jad.com': 2, 'asd@ajf.com': 1, 'asdf@adh.com': 1]
Спасибо за помощь!