def repr(e):
return str(e).replace("[", "(").replace("]", ")").replace(",", " ")
例子:
>>> repr([1, [2, [3, 4]]])
'(1 (2 (3 4)))'
timeit
这样的模块:
import timeit
def repr1(e):
if isinstance(e, (list, tuple)):
return "(%s)" % " ".join(map(repr, e))
return str(e)
def repr2(e):
return str(e).replace("[", "(").replace("]", ")").replace(",", " ")
duration1 = timeit.timeit('repr1([1, [2, [3, 4]]])', 'from __main__ import repr1',number=1000)
duration2 = timeit.timeit('repr2([1, [2, [3, 4]]])', 'from __main__ import repr2', number=1000)
print(duration1, duration2)
对于更大的列表
list(range(10000))
:
print(duration1, duration2)
# 1.0414706510000542 0.7595879010000317
str.translate()
:
def repr3(e):
table = str.maketrans("[],", "() ")
return str(e).translate(table)