diff --git a/python-set-comprehension/README.md b/python-set-comprehension/README.md new file mode 100644 index 0000000000..a0022a23fe --- /dev/null +++ b/python-set-comprehension/README.md @@ -0,0 +1,3 @@ +# Python Set Comprehensions: How and When to Use Them + +This folder provides the code examples for the Real Python tutorial [Python Set Comprehensions: How and When to Use Them](https://realpython.com/python-set-comprehension/). diff --git a/python-set-comprehension/colors.py b/python-set-comprehension/colors.py new file mode 100644 index 0000000000..a7fab40509 --- /dev/null +++ b/python-set-comprehension/colors.py @@ -0,0 +1,4 @@ +colors = {"blue", "red", "green", "orange", "green"} +print(colors) +colors.add("purple") +print(colors) diff --git a/python-set-comprehension/complex_expression.py b/python-set-comprehension/complex_expression.py new file mode 100644 index 0000000000..b23821e1b2 --- /dev/null +++ b/python-set-comprehension/complex_expression.py @@ -0,0 +1,13 @@ +numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + +print({number**2 if number % 2 == 0 else number**3 for number in numbers}) + +result_set = set() +for number in numbers: + if number % 2 == 0: + value = number**2 + else: + value = number**3 + result_set.add(value) + +print(result_set) diff --git a/python-set-comprehension/emails.py b/python-set-comprehension/emails.py new file mode 100644 index 0000000000..138c79ca95 --- /dev/null +++ b/python-set-comprehension/emails.py @@ -0,0 +1,10 @@ +emails = { + " alice@example.org ", + "BOB@example.com", + "charlie@EXAMPLE.com", + "David@example.net", + " bob@example.com", + "JohnDoe@example.com", +} + +print({email.strip().lower() for email in emails}) diff --git a/python-set-comprehension/filter_emails.py b/python-set-comprehension/filter_emails.py new file mode 100644 index 0000000000..9552a7e326 --- /dev/null +++ b/python-set-comprehension/filter_emails.py @@ -0,0 +1,9 @@ +emails_set = { + "alice@example.org", + "bob@example.com", + "johndoe@example.com", + "charlie@example.com", + "david@example.net", +} + +print({email for email in emails_set if email.endswith(".com")}) diff --git a/python-set-comprehension/matrix.py b/python-set-comprehension/matrix.py new file mode 100644 index 0000000000..91ba5d3f66 --- /dev/null +++ b/python-set-comprehension/matrix.py @@ -0,0 +1,8 @@ +matrix = [ + [9, 3, 8, 3], + [4, 5, 2, 8], + [6, 4, 3, 1], + [1, 0, 4, 5], +] + +print({value**2 for row in matrix for value in row}) diff --git a/python-set-comprehension/text.py b/python-set-comprehension/text.py new file mode 100644 index 0000000000..0e75e62995 --- /dev/null +++ b/python-set-comprehension/text.py @@ -0,0 +1,18 @@ +unique_words = set() +text = """ +Beautiful is better than ugly +Explicit is better than implicit +Simple is better than complex +Complex is better than complicated +""".lower() + +for word in text.split(): + unique_words.add(word) + +print(unique_words) + +print(set(text.split())) + +unique_words = {word for word in text.split()} + +print(unique_words) diff --git a/python-set-comprehension/tools.py b/python-set-comprehension/tools.py new file mode 100644 index 0000000000..ee3f1dea32 --- /dev/null +++ b/python-set-comprehension/tools.py @@ -0,0 +1,7 @@ +tools = ["Python", "Django", "Flask", "pandas", "NumPy"] +tools_set = {tool.lower() for tool in tools} + +print(tools_set) +print("python".lower() in tools_set) +print("Pandas".lower() in tools_set) +print("Numpy".lower() in tools_set)