Python 3 with explanations
Python 3\nclass Solution:\n    def numUniqueEmails(self, emails: List[str]) -> int:\n\t\t# Create set which may contain only unique values\n\t\ts = set()\n\t\t#
```Python 3\nclass Solution:\n    def numUniqueEmails(self, emails: List[str]) -> int:\n\t\t# Create set which may contain only unique values\n\t\ts = set()\n\t\t# For every entry in the list\n        for e in emails:\n\t\t\t# If entry is not empty\n            if len(e) > 0:\n\t\t\t\t# Split entry into two parts - before and after @ sign\n                a = e.split(\'@\')[0]\n                b = e.split(\'@\')[1]\n\t\t\t\t# If first part (local) contains + sign\n                if \'+\' in a:\n\t\t\t\t\t# Split this part again into two parts - before and after + sign\n\t\t\t\t\t# and replace dots in the first part with nothing, i.e. remove them\n\t\t\t\t\t# then reconstruct mail address by adding @ and the second part\n                    s.add(a.split(\'+\')[0].replace(\'.\', \'\') + \'@\' + b)\n                else:\n\t\t\t\t\t# If there is no + sign in the first part, then only remove dots\n\t\t\t\t\t# and reconstruct mail address by adding @ and the second part\n                    s.add(a.replace(\'.\', \'\') + \'@\' + b)\n\t\t# Return length of our set, i.e. number of entries\n        return len(s)\n```
['Python', 'Python3']