无论易用性如何,哪个计算效率更高?不断地切片列表并附加到它们?或者获取子串并做同样的事情?
例如,假设我有两个二进制字符串“11011”和“01001”。如果我将这些表示为列表,我将选择一个随机的“切片”点。假设我得到 3。我将获取第一个字符串的前 3 个字符和第二个字符串的剩余字符(因此我必须将两者都切片)并从中创建一个新字符串。
通过切割子字符串或将其表示为列表 ( [1, 1, 0, 1, 1] ) 而不是字符串会更有效吗?
请您参考如下方法:
>>> a = "11011"
>>> b = "01001"
>>> import timeit
>>> def strslice():
return a[:3] + b[3:]
>>> def lstslice():
return list(a)[:3] + list(b)[3:]
>>> c = list(a)
>>> d = list(b)
>>> def lsts():
return c[:3] + d[3:]
>>> timeit.timeit(strslice)
0.5103488475836432
>>> timeit.timeit(lstslice)
2.4350100538824613
>>> timeit.timeit(lsts)
1.0648406858527295
