Brace expansion using ranges: Difference between revisions
Updated and fixed Python in line with new task example.
No edit summary |
(Updated and fixed Python in line with new task example.) |
||
Line 1,741:
=={{header|Python}}==
▲"""Brace range expansion. Requires Python >=3.6.
Here we use regular expressions for parsing and take an object orientated approach
to expansion of range expressions.
▲NOTE: This implementation supports stepped ordinal range expressions.
"""
Line 1,871 ⟶ 1,865:
# A negative step means we reverse the range.
start, stop = stop, start
step = abs(step)▼
if start < stop:
▲ step = abs(step)
else:
start -= 1
stop -= 1
elif start > stop:
Line 1,917 ⟶ 1,916:
cases = [
r"simpleNumberRising{1..3}.txt",
r"steppedNumberRising{1..6..2}.txt",▼
r"steppedNumberDescending{20..9..2}.txt",▼
r"simpleAlphaDescending-{Z..X}.txt",
r"steppedDownAndPadded-{10..00..5}.txt",
r"minusSignFlipsSequence {030..20..-5}.txt",
r"reverseSteppedNumberRising{1..6..-2}.txt",
r"combined-{Q..P}{2..1}.txt",
r"emoji{🌵..🌶}{🌽..🌾}etc",
r"li{teral",
r"rangeless{random}string",▼
r"rangeless{}empty",
▲ r"rangeless{random}string",
# Extra examples, not from the task description.
▲ r"steppedNumberRising{1..6..2}.txt",
▲ r"steppedNumberDescending{20..9..2}.txt",
r"steppedAlphaDescending-{Z..M..2}.txt",
r"reverseSteppedAlphaRising{A..F..-2}.txt",
r"reversedSteppedAlphaDescending-{Z..M..-2}.txt",
]
Line 1,951 ⟶ 1,953:
simpleNumberRising2.txt
simpleNumberRising3.txt
steppedNumberRising{1..6..2}.txt ->▼
steppedNumberRising1.txt▼
steppedNumberRising3.txt▼
steppedNumberRising5.txt▼
steppedNumberDescending{20..9..2}.txt ->▼
steppedNumberDescending20.txt▼
steppedNumberDescending18.txt▼
steppedNumberDescending16.txt▼
steppedNumberDescending14.txt▼
steppedNumberDescending12.txt▼
steppedNumberDescending10.txt▼
simpleAlphaDescending-{Z..X}.txt ->
Line 1,979 ⟶ 1,968:
minusSignFlipsSequence 025.txt
minusSignFlipsSequence 030.txt
reverseSteppedNumberRising{1..6..-2}.txt ->
reverseSteppedNumberRising5.txt
reverseSteppedNumberRising3.txt
reverseSteppedNumberRising1.txt
combined-{Q..P}{2..1}.txt ->
Line 1,994 ⟶ 1,988:
li{teral ->
li{teral
rangeless{}empty ->▼
rangeless{}empty▼
rangeless{random}string ->
rangeless{random}string
▲steppedNumberRising{1..6..2}.txt ->
▲rangeless{}empty ->
▲ steppedNumberRising1.txt
▲ rangeless{}empty
▲ steppedNumberRising3.txt
▲ steppedNumberRising5.txt
▲steppedNumberDescending{20..9..2}.txt ->
▲ steppedNumberDescending20.txt
▲ steppedNumberDescending18.txt
▲ steppedNumberDescending16.txt
▲ steppedNumberDescending14.txt
▲ steppedNumberDescending12.txt
▲ steppedNumberDescending10.txt
steppedAlphaDescending-{Z..M..2}.txt ->
Line 2,009 ⟶ 2,016:
steppedAlphaDescending-P.txt
steppedAlphaDescending-N.txt
reverseSteppedAlphaRising{A..F..-2}.txt ->
reverseSteppedAlphaRisingE.txt
reverseSteppedAlphaRisingC.txt
reverseSteppedAlphaRisingA.txt
reversedSteppedAlphaDescending-{Z..M..-2}.txt ->
|