Skip to content

Commit

Permalink
Merge pull request #606 from realpython/python-set-comprehension
Browse files Browse the repository at this point in the history
Sample code for the article on set comprehension
  • Loading branch information
brendaweles authored Nov 21, 2024
2 parents c328778 + 4107fd0 commit 4a1c7ba
Show file tree
Hide file tree
Showing 8 changed files with 72 additions and 0 deletions.
3 changes: 3 additions & 0 deletions python-set-comprehension/README.md
Original file line number Diff line number Diff line change
@@ -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/).
4 changes: 4 additions & 0 deletions python-set-comprehension/colors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
colors = {"blue", "red", "green", "orange", "green"}
print(colors)
colors.add("purple")
print(colors)
13 changes: 13 additions & 0 deletions python-set-comprehension/complex_expression.py
Original file line number Diff line number Diff line change
@@ -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)
10 changes: 10 additions & 0 deletions python-set-comprehension/emails.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
emails = {
" [email protected] ",
"[email protected]",
"[email protected]",
"[email protected]",
" [email protected]",
"[email protected]",
}

print({email.strip().lower() for email in emails})
9 changes: 9 additions & 0 deletions python-set-comprehension/filter_emails.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
emails_set = {
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
}

print({email for email in emails_set if email.endswith(".com")})
8 changes: 8 additions & 0 deletions python-set-comprehension/matrix.py
Original file line number Diff line number Diff line change
@@ -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})
18 changes: 18 additions & 0 deletions python-set-comprehension/text.py
Original file line number Diff line number Diff line change
@@ -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)
7 changes: 7 additions & 0 deletions python-set-comprehension/tools.py
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit 4a1c7ba

Please sign in to comment.