"metadata": {},
"outputs": [],
"source": [
- "def decomment_no_re(text):\n",
+ "def decomment(text):\n",
" s, e = find_comment(text)\n",
" while s is not None:\n",
" text = text[:s] + text[e+1:]\n",
" if end > -1:\n",
" length = int(text[start+1:mid])\n",
" times = int(text[mid+1:end])\n",
- " if length > start:\n",
- " length = start\n",
" return start, end, length, times\n",
" return None, None, None, None"
]
"metadata": {},
"outputs": [],
"source": [
- "def expand_no_re(text, expansion_limit=None):\n",
+ "def expand(text, expansion_limit=None):\n",
" i = 1\n",
" s, e, l, n = find_expansion_mark(text)\n",
- " while s and (expansion_limit is None or (expansion_limit is not None and i <= expansion_limit)):\n",
+ " while s is not None and (expansion_limit is None or (expansion_limit is not None and i <= expansion_limit)):\n",
+ " if l > s: l = s\n",
" text = text[:s-l] + text[s-l:s] * n + text[e+1:]\n",
" s, e, l, n = find_expansion_mark(text)\n",
" i += 1\n",
"metadata": {},
"outputs": [],
"source": [
- "data_p = [decomment_no_re(l) for l in data_p_t]\n",
- "data = [expand_no_re(l) for l in data_p]"
+ "data_p = [decomment(l) for l in data_p_t]\n",
+ "data = [expand(l) for l in data_p]"
]
},
{
"outputs": [],
"source": [
"data_s_p_t = open('../../data/05-instructions.txt').read()\n",
- "data_s_p = decomment_no_re(data_s_p_t)\n",
- "data_s = expand_no_re(data_s_p)"
+ "data_s_p = decomment(data_s_p_t)\n",
+ "data_s = expand(data_s_p)"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- "23.7 ms ± 1.79 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
+ "22.7 ms ± 1.6 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
]
}
],
"source": [
"%%timeit\n",
- "data_p = [decomment_no_re(l) for l in data_p_t]\n",
- "data = [expand_no_re(l) for l in data_p]"
+ "data_p = [decomment(l) for l in data_p_t]\n",
+ "data = [expand(l) for l in data_p]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- "360 ms ± 6.67 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
+ "354 ms ± 7.34 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"%%timeit\n",
- "data_s_p = decomment_no_re(data_s_p_t)\n",
- "data_s = expand_no_re(data_s_p)"
+ "data_s_p = decomment(data_s_p_t)\n",
+ "data_s = expand(data_s_p)"
]
},
{