Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ repos:
- id: auto-walrus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.278
rev: v0.0.280
hooks:
- id: ruff

Expand Down
2 changes: 1 addition & 1 deletion cellular_automata/game_of_life.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,7 +98,7 @@ def __judge_point(pt: bool, neighbours: list[list[bool]]) -> bool:
if pt:
if alive < 2:
state = False
elif alive == 2 or alive == 3:
elif alive in {2, 3}:
state = True
elif alive > 3:
state = False
Expand Down
2 changes: 1 addition & 1 deletion data_structures/binary_tree/red_black_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,7 +152,7 @@ def _insert_repair(self) -> None:
self.grandparent.color = 1
self.grandparent._insert_repair()

def remove(self, label: int) -> RedBlackTree:
def remove(self, label: int) -> RedBlackTree: # noqa: PLR0912
"""Remove label from this tree."""
if self.label == label:
if self.left and self.right:
Expand Down
4 changes: 2 additions & 2 deletions data_structures/trie/radix_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -156,7 +156,7 @@ def delete(self, word: str) -> bool:
del self.nodes[word[0]]
# We merge the current node with its only child
if len(self.nodes) == 1 and not self.is_leaf:
merging_node = list(self.nodes.values())[0]
merging_node = next(iter(self.nodes.values()))
self.is_leaf = merging_node.is_leaf
self.prefix += merging_node.prefix
self.nodes = merging_node.nodes
Expand All@@ -165,7 +165,7 @@ def delete(self, word: str) -> bool:
incoming_node.is_leaf = False
# If there is 1 edge, we merge it with its child
else:
merging_node = list(incoming_node.nodes.values())[0]
merging_node = next(iter(incoming_node.nodes.values()))
incoming_node.is_leaf = merging_node.is_leaf
incoming_node.prefix += merging_node.prefix
incoming_node.nodes = merging_node.nodes
Expand Down
2 changes: 1 addition & 1 deletion divide_and_conquer/convex_hull.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -266,7 +266,7 @@ def convex_hull_bf(points: list[Point]) -> list[Point]:
points_left_of_ij = points_right_of_ij = False
ij_part_of_convex_hull = True
for k in range(n):
if k != i and k != j:
if k not in {i, j}:
det_k = _det(points[i], points[j], points[k])

if det_k > 0:
Expand Down
18 changes: 9 additions & 9 deletions graphs/directed_and_undirected_(weighted)_graph.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -87,7 +87,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -114,7 +114,7 @@ def topological_sort(self, s=-2):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -146,7 +146,7 @@ def topological_sort(self, s=-2):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -199,7 +199,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -305,7 +305,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -353,7 +353,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -371,7 +371,7 @@ def degree(self, u):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -424,7 +424,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand Down
2 changes: 1 addition & 1 deletion graphs/edmonds_karp_multiple_source_and_sink.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,7 @@ def _algorithm(self):
vertices_list = [
i
for i in range(self.verticies_count)
if i != self.source_index and i != self.sink_index
if i not in {self.source_index, self.sink_index}
]

# move through list
Expand Down
2 changes: 1 addition & 1 deletion maths/factorial.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,7 +55,7 @@ def factorial_recursive(n: int) -> int:
raise ValueError("factorial() only accepts integral values")
if n < 0:
raise ValueError("factorial() not defined for negative values")
return 1 if n == 0 or n == 1 else n * factorial(n - 1)
return 1 if n in {0, 1} else n * factorial(n - 1)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion maths/primelib.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -154,7 +154,7 @@ def prime_factorization(number):

quotient = number

if number == 0 or number == 1:
if number in {0, 1}:
ans.append(number)

# if 'number' not prime then builds the prime factorization of 'number'
Expand Down
2 changes: 1 addition & 1 deletion other/davisb_putnamb_logemannb_loveland.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -253,7 +253,7 @@ def find_unit_clauses(
unit_symbols = []
for clause in clauses:
if len(clause) == 1:
unit_symbols.append(list(clause.literals.keys())[0])
unit_symbols.append(next(iter(clause.literals)))
else:
f_count, n_count = 0, 0
for literal, value in clause.literals.items():
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_009/sol3.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,12 +28,12 @@ def solution() -> int:
31875000
"""

return [
return next(
a * b * (1000 - a - b)
for a in range(1, 999)
for b in range(a, 999)
if (a * a + b * b == (1000 - a - b) ** 2)
][0]
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion quantum/ripple_adder_classic.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -107,7 +107,7 @@ def ripple_adder(
res = qiskit.execute(circuit, backend, shots=1).result()

# The result is in binary. Convert it back to int
return int(list(res.get_counts())[0], 2)
return int(next(iter(res.get_counts())), 2)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion strings/min_cost_string_conversion.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,7 +61,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]:
if i == 0 and j == 0:
return []
else:
if ops[i][j][0] == "C" or ops[i][j][0] == "R":
if ops[i][j][0] in {"C", "R"}:
seq = assemble_transformation(ops, i - 1, j - 1)
seq.append(ops[i][j])
return seq
Expand Down
2 changes: 1 addition & 1 deletion web_programming/convert_number_to_words.py
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import math


def convert(number: int) -> str:
def convert(number: int) -> str: # noqa: PLR0912
"""
Given a number return the number in words.

Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ repos:
- id: auto-walrus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.278
rev: v0.0.280
hooks:
- id: ruff

Expand Down
2 changes: 1 addition & 1 deletion cellular_automata/game_of_life.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,7 +98,7 @@ def __judge_point(pt: bool, neighbours: list[list[bool]]) -> bool:
if pt:
if alive < 2:
state = False
elif alive == 2 or alive == 3:
elif alive in {2, 3}:
state = True
elif alive > 3:
state = False
Expand Down
2 changes: 1 addition & 1 deletion data_structures/binary_tree/red_black_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,7 +152,7 @@ def _insert_repair(self) -> None:
self.grandparent.color = 1
self.grandparent._insert_repair()

def remove(self, label: int) -> RedBlackTree:
def remove(self, label: int) -> RedBlackTree: # noqa: PLR0912
"""Remove label from this tree."""
if self.label == label:
if self.left and self.right:
Expand Down
4 changes: 2 additions & 2 deletions data_structures/trie/radix_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -156,7 +156,7 @@ def delete(self, word: str) -> bool:
del self.nodes[word[0]]
# We merge the current node with its only child
if len(self.nodes) == 1 and not self.is_leaf:
merging_node = list(self.nodes.values())[0]
merging_node = next(iter(self.nodes.values()))
self.is_leaf = merging_node.is_leaf
self.prefix += merging_node.prefix
self.nodes = merging_node.nodes
Expand All@@ -165,7 +165,7 @@ def delete(self, word: str) -> bool:
incoming_node.is_leaf = False
# If there is 1 edge, we merge it with its child
else:
merging_node = list(incoming_node.nodes.values())[0]
merging_node = next(iter(incoming_node.nodes.values()))
incoming_node.is_leaf = merging_node.is_leaf
incoming_node.prefix += merging_node.prefix
incoming_node.nodes = merging_node.nodes
Expand Down
2 changes: 1 addition & 1 deletion divide_and_conquer/convex_hull.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -266,7 +266,7 @@ def convex_hull_bf(points: list[Point]) -> list[Point]:
points_left_of_ij = points_right_of_ij = False
ij_part_of_convex_hull = True
for k in range(n):
if k != i and k != j:
if k not in {i, j}:
det_k = _det(points[i], points[j], points[k])

if det_k > 0:
Expand Down
18 changes: 9 additions & 9 deletions graphs/directed_and_undirected_(weighted)_graph.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -87,7 +87,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -114,7 +114,7 @@ def topological_sort(self, s=-2):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -146,7 +146,7 @@ def topological_sort(self, s=-2):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -199,7 +199,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -305,7 +305,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -353,7 +353,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -371,7 +371,7 @@ def degree(self, u):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -424,7 +424,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand Down
2 changes: 1 addition & 1 deletion graphs/edmonds_karp_multiple_source_and_sink.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,7 @@ def _algorithm(self):
vertices_list = [
i
for i in range(self.verticies_count)
if i != self.source_index and i != self.sink_index
if i not in {self.source_index, self.sink_index}
]

# move through list
Expand Down
2 changes: 1 addition & 1 deletion maths/factorial.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,7 +55,7 @@ def factorial_recursive(n: int) -> int:
raise ValueError("factorial() only accepts integral values")
if n < 0:
raise ValueError("factorial() not defined for negative values")
return 1 if n == 0 or n == 1 else n * factorial(n - 1)
return 1 if n in {0, 1} else n * factorial(n - 1)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion maths/primelib.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -154,7 +154,7 @@ def prime_factorization(number):

quotient = number

if number == 0 or number == 1:
if number in {0, 1}:
ans.append(number)

# if 'number' not prime then builds the prime factorization of 'number'
Expand Down
2 changes: 1 addition & 1 deletion other/davisb_putnamb_logemannb_loveland.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -253,7 +253,7 @@ def find_unit_clauses(
unit_symbols = []
for clause in clauses:
if len(clause) == 1:
unit_symbols.append(list(clause.literals.keys())[0])
unit_symbols.append(next(iter(clause.literals)))
else:
f_count, n_count = 0, 0
for literal, value in clause.literals.items():
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_009/sol3.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,12 +28,12 @@ def solution() -> int:
31875000
"""

return [
return next(
a * b * (1000 - a - b)
for a in range(1, 999)
for b in range(a, 999)
if (a * a + b * b == (1000 - a - b) ** 2)
][0]
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion quantum/ripple_adder_classic.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -107,7 +107,7 @@ def ripple_adder(
res = qiskit.execute(circuit, backend, shots=1).result()

# The result is in binary. Convert it back to int
return int(list(res.get_counts())[0], 2)
return int(next(iter(res.get_counts())), 2)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion strings/min_cost_string_conversion.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,7 +61,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]:
if i == 0 and j == 0:
return []
else:
if ops[i][j][0] == "C" or ops[i][j][0] == "R":
if ops[i][j][0] in {"C", "R"}:
seq = assemble_transformation(ops, i - 1, j - 1)
seq.append(ops[i][j])
return seq
Expand Down
2 changes: 1 addition & 1 deletion web_programming/convert_number_to_words.py
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import math


def convert(number: int) -> str:
def convert(number: int) -> str: # noqa: PLR0912
"""
Given a number return the number in words.

Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ repos:
- id: auto-walrus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.278
rev: v0.0.280
hooks:
- id: ruff

Expand Down
2 changes: 1 addition & 1 deletion cellular_automata/game_of_life.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,7 +98,7 @@ def __judge_point(pt: bool, neighbours: list[list[bool]]) -> bool:
if pt:
if alive < 2:
state = False
elif alive == 2 or alive == 3:
elif alive in {2, 3}:
state = True
elif alive > 3:
state = False
Expand Down
2 changes: 1 addition & 1 deletion data_structures/binary_tree/red_black_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,7 +152,7 @@ def _insert_repair(self) -> None:
self.grandparent.color = 1
self.grandparent._insert_repair()

def remove(self, label: int) -> RedBlackTree:
def remove(self, label: int) -> RedBlackTree: # noqa: PLR0912
"""Remove label from this tree."""
if self.label == label:
if self.left and self.right:
Expand Down
4 changes: 2 additions & 2 deletions data_structures/trie/radix_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -156,7 +156,7 @@ def delete(self, word: str) -> bool:
del self.nodes[word[0]]
# We merge the current node with its only child
if len(self.nodes) == 1 and not self.is_leaf:
merging_node = list(self.nodes.values())[0]
merging_node = next(iter(self.nodes.values()))
self.is_leaf = merging_node.is_leaf
self.prefix += merging_node.prefix
self.nodes = merging_node.nodes
Expand All@@ -165,7 +165,7 @@ def delete(self, word: str) -> bool:
incoming_node.is_leaf = False
# If there is 1 edge, we merge it with its child
else:
merging_node = list(incoming_node.nodes.values())[0]
merging_node = next(iter(incoming_node.nodes.values()))
incoming_node.is_leaf = merging_node.is_leaf
incoming_node.prefix += merging_node.prefix
incoming_node.nodes = merging_node.nodes
Expand Down
2 changes: 1 addition & 1 deletion divide_and_conquer/convex_hull.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -266,7 +266,7 @@ def convex_hull_bf(points: list[Point]) -> list[Point]:
points_left_of_ij = points_right_of_ij = False
ij_part_of_convex_hull = True
for k in range(n):
if k != i and k != j:
if k not in {i, j}:
det_k = _det(points[i], points[j], points[k])

if det_k > 0:
Expand Down
18 changes: 9 additions & 9 deletions graphs/directed_and_undirected_(weighted)_graph.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -87,7 +87,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -114,7 +114,7 @@ def topological_sort(self, s=-2):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -146,7 +146,7 @@ def topological_sort(self, s=-2):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -199,7 +199,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -305,7 +305,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -353,7 +353,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -371,7 +371,7 @@ def degree(self, u):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -424,7 +424,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand Down
2 changes: 1 addition & 1 deletion graphs/edmonds_karp_multiple_source_and_sink.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,7 @@ def _algorithm(self):
vertices_list = [
i
for i in range(self.verticies_count)
if i != self.source_index and i != self.sink_index
if i not in {self.source_index, self.sink_index}
]

# move through list
Expand Down
2 changes: 1 addition & 1 deletion maths/factorial.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,7 +55,7 @@ def factorial_recursive(n: int) -> int:
raise ValueError("factorial() only accepts integral values")
if n < 0:
raise ValueError("factorial() not defined for negative values")
return 1 if n == 0 or n == 1 else n * factorial(n - 1)
return 1 if n in {0, 1} else n * factorial(n - 1)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion maths/primelib.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -154,7 +154,7 @@ def prime_factorization(number):

quotient = number

if number == 0 or number == 1:
if number in {0, 1}:
ans.append(number)

# if 'number' not prime then builds the prime factorization of 'number'
Expand Down
2 changes: 1 addition & 1 deletion other/davisb_putnamb_logemannb_loveland.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -253,7 +253,7 @@ def find_unit_clauses(
unit_symbols = []
for clause in clauses:
if len(clause) == 1:
unit_symbols.append(list(clause.literals.keys())[0])
unit_symbols.append(next(iter(clause.literals)))
else:
f_count, n_count = 0, 0
for literal, value in clause.literals.items():
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_009/sol3.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,12 +28,12 @@ def solution() -> int:
31875000
"""

return [
return next(
a * b * (1000 - a - b)
for a in range(1, 999)
for b in range(a, 999)
if (a * a + b * b == (1000 - a - b) ** 2)
][0]
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion quantum/ripple_adder_classic.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -107,7 +107,7 @@ def ripple_adder(
res = qiskit.execute(circuit, backend, shots=1).result()

# The result is in binary. Convert it back to int
return int(list(res.get_counts())[0], 2)
return int(next(iter(res.get_counts())), 2)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion strings/min_cost_string_conversion.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,7 +61,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]:
if i == 0 and j == 0:
return []
else:
if ops[i][j][0] == "C" or ops[i][j][0] == "R":
if ops[i][j][0] in {"C", "R"}:
seq = assemble_transformation(ops, i - 1, j - 1)
seq.append(ops[i][j])
return seq
Expand Down
2 changes: 1 addition & 1 deletion web_programming/convert_number_to_words.py
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import math


def convert(number: int) -> str:
def convert(number: int) -> str: # noqa: PLR0912
"""
Given a number return the number in words.

Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ repos:
- id: auto-walrus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.278
rev: v0.0.280
hooks:
- id: ruff

Expand Down
2 changes: 1 addition & 1 deletion cellular_automata/game_of_life.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,7 +98,7 @@ def __judge_point(pt: bool, neighbours: list[list[bool]]) -> bool:
if pt:
if alive < 2:
state = False
elif alive == 2 or alive == 3:
elif alive in {2, 3}:
state = True
elif alive > 3:
state = False
Expand Down
2 changes: 1 addition & 1 deletion data_structures/binary_tree/red_black_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,7 +152,7 @@ def _insert_repair(self) -> None:
self.grandparent.color = 1
self.grandparent._insert_repair()

def remove(self, label: int) -> RedBlackTree:
def remove(self, label: int) -> RedBlackTree: # noqa: PLR0912
"""Remove label from this tree."""
if self.label == label:
if self.left and self.right:
Expand Down
4 changes: 2 additions & 2 deletions data_structures/trie/radix_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -156,7 +156,7 @@ def delete(self, word: str) -> bool:
del self.nodes[word[0]]
# We merge the current node with its only child
if len(self.nodes) == 1 and not self.is_leaf:
merging_node = list(self.nodes.values())[0]
merging_node = next(iter(self.nodes.values()))
self.is_leaf = merging_node.is_leaf
self.prefix += merging_node.prefix
self.nodes = merging_node.nodes
Expand All@@ -165,7 +165,7 @@ def delete(self, word: str) -> bool:
incoming_node.is_leaf = False
# If there is 1 edge, we merge it with its child
else:
merging_node = list(incoming_node.nodes.values())[0]
merging_node = next(iter(incoming_node.nodes.values()))
incoming_node.is_leaf = merging_node.is_leaf
incoming_node.prefix += merging_node.prefix
incoming_node.nodes = merging_node.nodes
Expand Down
2 changes: 1 addition & 1 deletion divide_and_conquer/convex_hull.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -266,7 +266,7 @@ def convex_hull_bf(points: list[Point]) -> list[Point]:
points_left_of_ij = points_right_of_ij = False
ij_part_of_convex_hull = True
for k in range(n):
if k != i and k != j:
if k not in {i, j}:
det_k = _det(points[i], points[j], points[k])

if det_k > 0:
Expand Down
18 changes: 9 additions & 9 deletions graphs/directed_and_undirected_(weighted)_graph.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -87,7 +87,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -114,7 +114,7 @@ def topological_sort(self, s=-2):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -146,7 +146,7 @@ def topological_sort(self, s=-2):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -199,7 +199,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -305,7 +305,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -353,7 +353,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -371,7 +371,7 @@ def degree(self, u):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -424,7 +424,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand Down
2 changes: 1 addition & 1 deletion graphs/edmonds_karp_multiple_source_and_sink.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,7 @@ def _algorithm(self):
vertices_list = [
i
for i in range(self.verticies_count)
if i != self.source_index and i != self.sink_index
if i not in {self.source_index, self.sink_index}
]

# move through list
Expand Down
2 changes: 1 addition & 1 deletion maths/factorial.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,7 +55,7 @@ def factorial_recursive(n: int) -> int:
raise ValueError("factorial() only accepts integral values")
if n < 0:
raise ValueError("factorial() not defined for negative values")
return 1 if n == 0 or n == 1 else n * factorial(n - 1)
return 1 if n in {0, 1} else n * factorial(n - 1)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion maths/primelib.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -154,7 +154,7 @@ def prime_factorization(number):

quotient = number

if number == 0 or number == 1:
if number in {0, 1}:
ans.append(number)

# if 'number' not prime then builds the prime factorization of 'number'
Expand Down
2 changes: 1 addition & 1 deletion other/davisb_putnamb_logemannb_loveland.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -253,7 +253,7 @@ def find_unit_clauses(
unit_symbols = []
for clause in clauses:
if len(clause) == 1:
unit_symbols.append(list(clause.literals.keys())[0])
unit_symbols.append(next(iter(clause.literals)))
else:
f_count, n_count = 0, 0
for literal, value in clause.literals.items():
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_009/sol3.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,12 +28,12 @@ def solution() -> int:
31875000
"""

return [
return next(
a * b * (1000 - a - b)
for a in range(1, 999)
for b in range(a, 999)
if (a * a + b * b == (1000 - a - b) ** 2)
][0]
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion quantum/ripple_adder_classic.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -107,7 +107,7 @@ def ripple_adder(
res = qiskit.execute(circuit, backend, shots=1).result()

# The result is in binary. Convert it back to int
return int(list(res.get_counts())[0], 2)
return int(next(iter(res.get_counts())), 2)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion strings/min_cost_string_conversion.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,7 +61,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]:
if i == 0 and j == 0:
return []
else:
if ops[i][j][0] == "C" or ops[i][j][0] == "R":
if ops[i][j][0] in {"C", "R"}:
seq = assemble_transformation(ops, i - 1, j - 1)
seq.append(ops[i][j])
return seq
Expand Down
2 changes: 1 addition & 1 deletion web_programming/convert_number_to_words.py
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import math


def convert(number: int) -> str:
def convert(number: int) -> str: # noqa: PLR0912
"""
Given a number return the number in words.

Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ repos:
- id: auto-walrus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.278
rev: v0.0.280
hooks:
- id: ruff

Expand Down
2 changes: 1 addition & 1 deletion cellular_automata/game_of_life.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,7 +98,7 @@ def __judge_point(pt: bool, neighbours: list[list[bool]]) -> bool:
if pt:
if alive < 2:
state = False
elif alive == 2 or alive == 3:
elif alive in {2, 3}:
state = True
elif alive > 3:
state = False
Expand Down
2 changes: 1 addition & 1 deletion data_structures/binary_tree/red_black_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,7 +152,7 @@ def _insert_repair(self) -> None:
self.grandparent.color = 1
self.grandparent._insert_repair()

def remove(self, label: int) -> RedBlackTree:
def remove(self, label: int) -> RedBlackTree: # noqa: PLR0912
"""Remove label from this tree."""
if self.label == label:
if self.left and self.right:
Expand Down
4 changes: 2 additions & 2 deletions data_structures/trie/radix_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -156,7 +156,7 @@ def delete(self, word: str) -> bool:
del self.nodes[word[0]]
# We merge the current node with its only child
if len(self.nodes) == 1 and not self.is_leaf:
merging_node = list(self.nodes.values())[0]
merging_node = next(iter(self.nodes.values()))
self.is_leaf = merging_node.is_leaf
self.prefix += merging_node.prefix
self.nodes = merging_node.nodes
Expand All@@ -165,7 +165,7 @@ def delete(self, word: str) -> bool:
incoming_node.is_leaf = False
# If there is 1 edge, we merge it with its child
else:
merging_node = list(incoming_node.nodes.values())[0]
merging_node = next(iter(incoming_node.nodes.values()))
incoming_node.is_leaf = merging_node.is_leaf
incoming_node.prefix += merging_node.prefix
incoming_node.nodes = merging_node.nodes
Expand Down
2 changes: 1 addition & 1 deletion divide_and_conquer/convex_hull.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -266,7 +266,7 @@ def convex_hull_bf(points: list[Point]) -> list[Point]:
points_left_of_ij = points_right_of_ij = False
ij_part_of_convex_hull = True
for k in range(n):
if k != i and k != j:
if k not in {i, j}:
det_k = _det(points[i], points[j], points[k])

if det_k > 0:
Expand Down
18 changes: 9 additions & 9 deletions graphs/directed_and_undirected_(weighted)_graph.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -87,7 +87,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -114,7 +114,7 @@ def topological_sort(self, s=-2):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -146,7 +146,7 @@ def topological_sort(self, s=-2):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -199,7 +199,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -305,7 +305,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -353,7 +353,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -371,7 +371,7 @@ def degree(self, u):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -424,7 +424,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand Down
2 changes: 1 addition & 1 deletion graphs/edmonds_karp_multiple_source_and_sink.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,7 @@ def _algorithm(self):
vertices_list = [
i
for i in range(self.verticies_count)
if i != self.source_index and i != self.sink_index
if i not in {self.source_index, self.sink_index}
]

# move through list
Expand Down
2 changes: 1 addition & 1 deletion maths/factorial.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,7 +55,7 @@ def factorial_recursive(n: int) -> int:
raise ValueError("factorial() only accepts integral values")
if n < 0:
raise ValueError("factorial() not defined for negative values")
return 1 if n == 0 or n == 1 else n * factorial(n - 1)
return 1 if n in {0, 1} else n * factorial(n - 1)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion maths/primelib.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -154,7 +154,7 @@ def prime_factorization(number):

quotient = number

if number == 0 or number == 1:
if number in {0, 1}:
ans.append(number)

# if 'number' not prime then builds the prime factorization of 'number'
Expand Down
2 changes: 1 addition & 1 deletion other/davisb_putnamb_logemannb_loveland.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -253,7 +253,7 @@ def find_unit_clauses(
unit_symbols = []
for clause in clauses:
if len(clause) == 1:
unit_symbols.append(list(clause.literals.keys())[0])
unit_symbols.append(next(iter(clause.literals)))
else:
f_count, n_count = 0, 0
for literal, value in clause.literals.items():
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_009/sol3.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,12 +28,12 @@ def solution() -> int:
31875000
"""

return [
return next(
a * b * (1000 - a - b)
for a in range(1, 999)
for b in range(a, 999)
if (a * a + b * b == (1000 - a - b) ** 2)
][0]
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion quantum/ripple_adder_classic.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -107,7 +107,7 @@ def ripple_adder(
res = qiskit.execute(circuit, backend, shots=1).result()

# The result is in binary. Convert it back to int
return int(list(res.get_counts())[0], 2)
return int(next(iter(res.get_counts())), 2)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion strings/min_cost_string_conversion.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,7 +61,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]:
if i == 0 and j == 0:
return []
else:
if ops[i][j][0] == "C" or ops[i][j][0] == "R":
if ops[i][j][0] in {"C", "R"}:
seq = assemble_transformation(ops, i - 1, j - 1)
seq.append(ops[i][j])
return seq
Expand Down
2 changes: 1 addition & 1 deletion web_programming/convert_number_to_words.py
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import math


def convert(number: int) -> str:
def convert(number: int) -> str: # noqa: PLR0912
"""
Given a number return the number in words.

Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ repos:
- id: auto-walrus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.278
rev: v0.0.280
hooks:
- id: ruff

Expand Down
2 changes: 1 addition & 1 deletion cellular_automata/game_of_life.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,7 +98,7 @@ def __judge_point(pt: bool, neighbours: list[list[bool]]) -> bool:
if pt:
if alive < 2:
state = False
elif alive == 2 or alive == 3:
elif alive in {2, 3}:
state = True
elif alive > 3:
state = False
Expand Down
2 changes: 1 addition & 1 deletion data_structures/binary_tree/red_black_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,7 +152,7 @@ def _insert_repair(self) -> None:
self.grandparent.color = 1
self.grandparent._insert_repair()

def remove(self, label: int) -> RedBlackTree:
def remove(self, label: int) -> RedBlackTree: # noqa: PLR0912
"""Remove label from this tree."""
if self.label == label:
if self.left and self.right:
Expand Down
4 changes: 2 additions & 2 deletions data_structures/trie/radix_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -156,7 +156,7 @@ def delete(self, word: str) -> bool:
del self.nodes[word[0]]
# We merge the current node with its only child
if len(self.nodes) == 1 and not self.is_leaf:
merging_node = list(self.nodes.values())[0]
merging_node = next(iter(self.nodes.values()))
self.is_leaf = merging_node.is_leaf
self.prefix += merging_node.prefix
self.nodes = merging_node.nodes
Expand All@@ -165,7 +165,7 @@ def delete(self, word: str) -> bool:
incoming_node.is_leaf = False
# If there is 1 edge, we merge it with its child
else:
merging_node = list(incoming_node.nodes.values())[0]
merging_node = next(iter(incoming_node.nodes.values()))
incoming_node.is_leaf = merging_node.is_leaf
incoming_node.prefix += merging_node.prefix
incoming_node.nodes = merging_node.nodes
Expand Down
2 changes: 1 addition & 1 deletion divide_and_conquer/convex_hull.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -266,7 +266,7 @@ def convex_hull_bf(points: list[Point]) -> list[Point]:
points_left_of_ij = points_right_of_ij = False
ij_part_of_convex_hull = True
for k in range(n):
if k != i and k != j:
if k not in {i, j}:
det_k = _det(points[i], points[j], points[k])

if det_k > 0:
Expand Down
18 changes: 9 additions & 9 deletions graphs/directed_and_undirected_(weighted)_graph.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -87,7 +87,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -114,7 +114,7 @@ def topological_sort(self, s=-2):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -146,7 +146,7 @@ def topological_sort(self, s=-2):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -199,7 +199,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -305,7 +305,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -353,7 +353,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -371,7 +371,7 @@ def degree(self, u):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -424,7 +424,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand Down
2 changes: 1 addition & 1 deletion graphs/edmonds_karp_multiple_source_and_sink.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,7 @@ def _algorithm(self):
vertices_list = [
i
for i in range(self.verticies_count)
if i != self.source_index and i != self.sink_index
if i not in {self.source_index, self.sink_index}
]

# move through list
Expand Down
2 changes: 1 addition & 1 deletion maths/factorial.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,7 +55,7 @@ def factorial_recursive(n: int) -> int:
raise ValueError("factorial() only accepts integral values")
if n < 0:
raise ValueError("factorial() not defined for negative values")
return 1 if n == 0 or n == 1 else n * factorial(n - 1)
return 1 if n in {0, 1} else n * factorial(n - 1)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion maths/primelib.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -154,7 +154,7 @@ def prime_factorization(number):

quotient = number

if number == 0 or number == 1:
if number in {0, 1}:
ans.append(number)

# if 'number' not prime then builds the prime factorization of 'number'
Expand Down
2 changes: 1 addition & 1 deletion other/davisb_putnamb_logemannb_loveland.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -253,7 +253,7 @@ def find_unit_clauses(
unit_symbols = []
for clause in clauses:
if len(clause) == 1:
unit_symbols.append(list(clause.literals.keys())[0])
unit_symbols.append(next(iter(clause.literals)))
else:
f_count, n_count = 0, 0
for literal, value in clause.literals.items():
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_009/sol3.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,12 +28,12 @@ def solution() -> int:
31875000
"""

return [
return next(
a * b * (1000 - a - b)
for a in range(1, 999)
for b in range(a, 999)
if (a * a + b * b == (1000 - a - b) ** 2)
][0]
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion quantum/ripple_adder_classic.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -107,7 +107,7 @@ def ripple_adder(
res = qiskit.execute(circuit, backend, shots=1).result()

# The result is in binary. Convert it back to int
return int(list(res.get_counts())[0], 2)
return int(next(iter(res.get_counts())), 2)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion strings/min_cost_string_conversion.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,7 +61,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]:
if i == 0 and j == 0:
return []
else:
if ops[i][j][0] == "C" or ops[i][j][0] == "R":
if ops[i][j][0] in {"C", "R"}:
seq = assemble_transformation(ops, i - 1, j - 1)
seq.append(ops[i][j])
return seq
Expand Down
2 changes: 1 addition & 1 deletion web_programming/convert_number_to_words.py
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import math


def convert(number: int) -> str:
def convert(number: int) -> str: # noqa: PLR0912
"""
Given a number return the number in words.

Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ repos:
- id: auto-walrus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.278
rev: v0.0.280
hooks:
- id: ruff

Expand Down
2 changes: 1 addition & 1 deletion cellular_automata/game_of_life.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,7 +98,7 @@ def __judge_point(pt: bool, neighbours: list[list[bool]]) -> bool:
if pt:
if alive < 2:
state = False
elif alive == 2 or alive == 3:
elif alive in {2, 3}:
state = True
elif alive > 3:
state = False
Expand Down
2 changes: 1 addition & 1 deletion data_structures/binary_tree/red_black_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,7 +152,7 @@ def _insert_repair(self) -> None:
self.grandparent.color = 1
self.grandparent._insert_repair()

def remove(self, label: int) -> RedBlackTree:
def remove(self, label: int) -> RedBlackTree: # noqa: PLR0912
"""Remove label from this tree."""
if self.label == label:
if self.left and self.right:
Expand Down
4 changes: 2 additions & 2 deletions data_structures/trie/radix_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -156,7 +156,7 @@ def delete(self, word: str) -> bool:
del self.nodes[word[0]]
# We merge the current node with its only child
if len(self.nodes) == 1 and not self.is_leaf:
merging_node = list(self.nodes.values())[0]
merging_node = next(iter(self.nodes.values()))
self.is_leaf = merging_node.is_leaf
self.prefix += merging_node.prefix
self.nodes = merging_node.nodes
Expand All@@ -165,7 +165,7 @@ def delete(self, word: str) -> bool:
incoming_node.is_leaf = False
# If there is 1 edge, we merge it with its child
else:
merging_node = list(incoming_node.nodes.values())[0]
merging_node = next(iter(incoming_node.nodes.values()))
incoming_node.is_leaf = merging_node.is_leaf
incoming_node.prefix += merging_node.prefix
incoming_node.nodes = merging_node.nodes
Expand Down
2 changes: 1 addition & 1 deletion divide_and_conquer/convex_hull.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -266,7 +266,7 @@ def convex_hull_bf(points: list[Point]) -> list[Point]:
points_left_of_ij = points_right_of_ij = False
ij_part_of_convex_hull = True
for k in range(n):
if k != i and k != j:
if k not in {i, j}:
det_k = _det(points[i], points[j], points[k])

if det_k > 0:
Expand Down
18 changes: 9 additions & 9 deletions graphs/directed_and_undirected_(weighted)_graph.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -87,7 +87,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -114,7 +114,7 @@ def topological_sort(self, s=-2):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -146,7 +146,7 @@ def topological_sort(self, s=-2):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -199,7 +199,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -305,7 +305,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -353,7 +353,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -371,7 +371,7 @@ def degree(self, u):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -424,7 +424,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand Down
2 changes: 1 addition & 1 deletion graphs/edmonds_karp_multiple_source_and_sink.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,7 @@ def _algorithm(self):
vertices_list = [
i
for i in range(self.verticies_count)
if i != self.source_index and i != self.sink_index
if i not in {self.source_index, self.sink_index}
]

# move through list
Expand Down
2 changes: 1 addition & 1 deletion maths/factorial.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,7 +55,7 @@ def factorial_recursive(n: int) -> int:
raise ValueError("factorial() only accepts integral values")
if n < 0:
raise ValueError("factorial() not defined for negative values")
return 1 if n == 0 or n == 1 else n * factorial(n - 1)
return 1 if n in {0, 1} else n * factorial(n - 1)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion maths/primelib.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -154,7 +154,7 @@ def prime_factorization(number):

quotient = number

if number == 0 or number == 1:
if number in {0, 1}:
ans.append(number)

# if 'number' not prime then builds the prime factorization of 'number'
Expand Down
2 changes: 1 addition & 1 deletion other/davisb_putnamb_logemannb_loveland.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -253,7 +253,7 @@ def find_unit_clauses(
unit_symbols = []
for clause in clauses:
if len(clause) == 1:
unit_symbols.append(list(clause.literals.keys())[0])
unit_symbols.append(next(iter(clause.literals)))
else:
f_count, n_count = 0, 0
for literal, value in clause.literals.items():
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_009/sol3.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,12 +28,12 @@ def solution() -> int:
31875000
"""

return [
return next(
a * b * (1000 - a - b)
for a in range(1, 999)
for b in range(a, 999)
if (a * a + b * b == (1000 - a - b) ** 2)
][0]
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion quantum/ripple_adder_classic.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -107,7 +107,7 @@ def ripple_adder(
res = qiskit.execute(circuit, backend, shots=1).result()

# The result is in binary. Convert it back to int
return int(list(res.get_counts())[0], 2)
return int(next(iter(res.get_counts())), 2)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion strings/min_cost_string_conversion.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,7 +61,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]:
if i == 0 and j == 0:
return []
else:
if ops[i][j][0] == "C" or ops[i][j][0] == "R":
if ops[i][j][0] in {"C", "R"}:
seq = assemble_transformation(ops, i - 1, j - 1)
seq.append(ops[i][j])
return seq
Expand Down
2 changes: 1 addition & 1 deletion web_programming/convert_number_to_words.py
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import math


def convert(number: int) -> str:
def convert(number: int) -> str: # noqa: PLR0912
"""
Given a number return the number in words.

Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ repos:
- id: auto-walrus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.278
rev: v0.0.280
hooks:
- id: ruff

Expand Down
2 changes: 1 addition & 1 deletion cellular_automata/game_of_life.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,7 +98,7 @@ def __judge_point(pt: bool, neighbours: list[list[bool]]) -> bool:
if pt:
if alive < 2:
state = False
elif alive == 2 or alive == 3:
elif alive in {2, 3}:
state = True
elif alive > 3:
state = False
Expand Down
2 changes: 1 addition & 1 deletion data_structures/binary_tree/red_black_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,7 +152,7 @@ def _insert_repair(self) -> None:
self.grandparent.color = 1
self.grandparent._insert_repair()

def remove(self, label: int) -> RedBlackTree:
def remove(self, label: int) -> RedBlackTree: # noqa: PLR0912
"""Remove label from this tree."""
if self.label == label:
if self.left and self.right:
Expand Down
4 changes: 2 additions & 2 deletions data_structures/trie/radix_tree.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -156,7 +156,7 @@ def delete(self, word: str) -> bool:
del self.nodes[word[0]]
# We merge the current node with its only child
if len(self.nodes) == 1 and not self.is_leaf:
merging_node = list(self.nodes.values())[0]
merging_node = next(iter(self.nodes.values()))
self.is_leaf = merging_node.is_leaf
self.prefix += merging_node.prefix
self.nodes = merging_node.nodes
Expand All@@ -165,7 +165,7 @@ def delete(self, word: str) -> bool:
incoming_node.is_leaf = False
# If there is 1 edge, we merge it with its child
else:
merging_node = list(incoming_node.nodes.values())[0]
merging_node = next(iter(incoming_node.nodes.values()))
incoming_node.is_leaf = merging_node.is_leaf
incoming_node.prefix += merging_node.prefix
incoming_node.nodes = merging_node.nodes
Expand Down
2 changes: 1 addition & 1 deletion divide_and_conquer/convex_hull.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -266,7 +266,7 @@ def convex_hull_bf(points: list[Point]) -> list[Point]:
points_left_of_ij = points_right_of_ij = False
ij_part_of_convex_hull = True
for k in range(n):
if k != i and k != j:
if k not in {i, j}:
det_k = _det(points[i], points[j], points[k])

if det_k > 0:
Expand Down
18 changes: 9 additions & 9 deletions graphs/directed_and_undirected_(weighted)_graph.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -87,7 +87,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -114,7 +114,7 @@ def topological_sort(self, s=-2):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -146,7 +146,7 @@ def topological_sort(self, s=-2):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -199,7 +199,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -305,7 +305,7 @@ def dfs(self, s=-2, d=-1):
stack = []
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
ss = s
Expand DownExpand Up@@ -353,7 +353,7 @@ def bfs(self, s=-2):
d = deque()
visited = []
if s == -2:
s = list(self.graph)[0]
s = next(iter(self.graph))
d.append(s)
visited.append(s)
while d:
Expand All@@ -371,7 +371,7 @@ def degree(self, u):
def cycle_nodes(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand DownExpand Up@@ -424,7 +424,7 @@ def cycle_nodes(self):
def has_cycle(self):
stack = []
visited = []
s = list(self.graph)[0]
s = next(iter(self.graph))
stack.append(s)
visited.append(s)
parent = -2
Expand Down
2 changes: 1 addition & 1 deletion graphs/edmonds_karp_multiple_source_and_sink.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -113,7 +113,7 @@ def _algorithm(self):
vertices_list = [
i
for i in range(self.verticies_count)
if i != self.source_index and i != self.sink_index
if i not in {self.source_index, self.sink_index}
]

# move through list
Expand Down
2 changes: 1 addition & 1 deletion maths/factorial.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,7 +55,7 @@ def factorial_recursive(n: int) -> int:
raise ValueError("factorial() only accepts integral values")
if n < 0:
raise ValueError("factorial() not defined for negative values")
return 1 if n == 0 or n == 1 else n * factorial(n - 1)
return 1 if n in {0, 1} else n * factorial(n - 1)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion maths/primelib.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -154,7 +154,7 @@ def prime_factorization(number):

quotient = number

if number == 0 or number == 1:
if number in {0, 1}:
ans.append(number)

# if 'number' not prime then builds the prime factorization of 'number'
Expand Down
2 changes: 1 addition & 1 deletion other/davisb_putnamb_logemannb_loveland.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -253,7 +253,7 @@ def find_unit_clauses(
unit_symbols = []
for clause in clauses:
if len(clause) == 1:
unit_symbols.append(list(clause.literals.keys())[0])
unit_symbols.append(next(iter(clause.literals)))
else:
f_count, n_count = 0, 0
for literal, value in clause.literals.items():
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_009/sol3.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,12 +28,12 @@ def solution() -> int:
31875000
"""

return [
return next(
a * b * (1000 - a - b)
for a in range(1, 999)
for b in range(a, 999)
if (a * a + b * b == (1000 - a - b) ** 2)
][0]
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion quantum/ripple_adder_classic.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -107,7 +107,7 @@ def ripple_adder(
res = qiskit.execute(circuit, backend, shots=1).result()

# The result is in binary. Convert it back to int
return int(list(res.get_counts())[0], 2)
return int(next(iter(res.get_counts())), 2)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion strings/min_cost_string_conversion.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,7 +61,7 @@ def assemble_transformation(ops: list[list[str]], i: int, j: int) -> list[str]:
if i == 0 and j == 0:
return []
else:
if ops[i][j][0] == "C" or ops[i][j][0] == "R":
if ops[i][j][0] in {"C", "R"}:
seq = assemble_transformation(ops, i - 1, j - 1)
seq.append(ops[i][j])
return seq
Expand Down
2 changes: 1 addition & 1 deletion web_programming/convert_number_to_words.py
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
import math


def convert(number: int) -> str:
def convert(number: int) -> str: # noqa: PLR0912
"""
Given a number return the number in words.

Expand Down