Validating Email Addresses With a Filter in Python HackerRank Solution

ByBrokenprogrammers

Dec 10, 2022

Hello Programmers, In this post, you will know how to solve the Validating Email Addresses With a Filter in Python HackerRank Solution. This problem is a part of the HackerRank Python Programming Series.

One more thing to add, donâ€™t directly look for the solutions, first try to solve the problems of Hackerrank by yourself. If you find any difficulty after trying several times, then you can look for solutions.

Validating Email Addresses With a Filter in Python HackerRank Solution

Problem

You are given an integer N followed by N email addresses. Your task is to print a list containing only valid email addresses in lexicographical order.
Valid email addresses must follow these rules:It must have the [email protected] format type.
The username can only contain letters, digits, dashes and underscores.
The website name can only have letters and digits.
The maximum length of the extension is 3.
Concept :A filter takes a function returning True or False and applies it to a sequence, returning a list of only those members of the sequence where the function returned True. A Lambda function can be used with filters.
Let’s say you have to make a list of the squares of integers from 0 to 9(both included).

```>> l = list(range(10))
>> l = list(map(lambda x:x*x, l))
```

Now, you only require those elements that are greater than 10 but less than 80.

```>> l = list(filter(lambda x: x > 10 and x < 80, l))
```

Easy, isn’t it?

Input Format :

The first line of input is the integer N, the number of email addresses.
N lines follow, each containing a string.

Constraints :

Each line is a non-empty string.

Output Format :

Output a list containing the valid email addresses in lexicographical order. If the list is empty, just output an empty list, [].

Sample Input :

```3
lara@hackerrank.com
brian-23@hackerrank.com
britts_54@hackerrank.com
```

Sample Output :

`['[email protected]', '[email protected]', '[email protected]']`

Validating Email Addresses With a Filter in Python HackerRank Solutions

```def fun(email):
try:
website, extension = url.split('.')
except ValueError:
return False
if username.replace('-', '').replace('_', '').isalnum() is False:
return False
elif website.isalnum() is False:
return False
elif len(extension) > 3:
return False
else:
return True
def filter_mail(emails):
return list(filter(fun, emails))
if __name__ == '__main__':
n = int(input())
emails = []
for _ in range(n):
emails.append(input())
filtered_emails = filter_mail(emails)
filtered_emails.sort()
print(filtered_emails)```

Disclaimer: The above Problem (Validating Email Addresses With a Filter in Python) is generated by Hackerrank but the Solution is Provided by BrokenProgrammers. This tutorial is only for  Educational and Learning purposes.