计算不同的 Gmail 地址

count distinct gmail addresses

需要计算用户提供的不同 gmail 地址作为输入,条件如下:

不区分大小写:

"a@gmail.com" == "A@GmaiL.com"

忽略本地名称中字符串中的‘.’字符:

"aa@gmail.com" == "a.a@gmail.com"

Gmail 域与 googlemail 相同

"aa@gmail.com" == "aa@googlemail.com"

我的问题是最后一个。如何在我的代码中实现最后一个条件?

distinct_emails=[]
email = []
count=0
 for i in range(int(input())):
  item = input().lower().replace(".","")
  email.append(item)

 for i in email:
  if i not in distinct_emails:
    count = count + 1
    distinct_emails.append(i)
print(count)

您可以尝试这样的操作,对于 gmail 和 googlemail 地址,您在将其附加到 distinct_emails 列表之前检查交换的版本。

distinct_emails=[]
email = []
count=0
 for i in range(int(input())):
  item = e.lower()
  # don't remove `.` after the `@`.
  parts = item.split("@")
  email.append(parts[0].replace(".", "") + "@" + parts[1])

for i in email:
  # consider googlemail and gmail to be equivalent
  if not any(e in distinct_emails for e in [i, i.replace('@googlemail.com', '@gmail.com'), i.replace('@gmail.com', '@googlemail.com')]):
    count = count + 1
    distinct_emails.append(i)
print(count)