aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYitzchak Scott-Thoennes <sthoenna@gmail.com>2025-05-19 18:00:02 -0400
committerYitzchak Scott-Thoennes <sthoenna@gmail.com>2025-05-20 08:26:13 -0400
commita65673de75201e1ca7da5530b037fcf40dbee37b (patch)
treefa8b8df66df6e010ee5536ff002537dc1787b126
parent68f9929d37899a229ef9a247770e4032899e6639 (diff)
downloadperlweeklychallenge-club-a65673de75201e1ca7da5530b037fcf40dbee37b.tar.gz
perlweeklychallenge-club-a65673de75201e1ca7da5530b037fcf40dbee37b.tar.bz2
perlweeklychallenge-club-a65673de75201e1ca7da5530b037fcf40dbee37b.zip
challenge 322 better python solution for challenge 2 by ysth
-rw-r--r--challenge-322/ysth/python/ch-2.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/challenge-322/ysth/python/ch-2.py b/challenge-322/ysth/python/ch-2.py
index 75301f87a5..058872ecca 100644
--- a/challenge-322/ysth/python/ch-2.py
+++ b/challenge-322/ysth/python/ch-2.py
@@ -1,17 +1,19 @@
import sys
+import operator
integers = [int(value) for value in sys.argv[1:]]
+# python doesn't have a clean dict slice syntax; usually a comprehension
+# is used (e.g. (mydict[key] for key in mykeys)), but that evaluates the
+# dict expression more than once, so use itemgetter or a map
+
print(
" ".join(
- list(
- map(
- {
- value: str(i + 1)
- for i, value in enumerate(sorted(set(integers)))
- }.__getitem__,
- integers,
- )
+ operator.itemgetter(*integers)(
+ {
+ value: str(i + 1)
+ for i, value in enumerate(sorted(set(integers)))
+ }
)
)
)