from collections import deque
L = [["111000"], ["222999"]]
def reverser(x):
out = deque()
for i in x:
out.appendleft(i)
return ''.join(out)
res = [[reverser(x[0])] for x in L]
print(res)
[['000111'], ['999222']]
t = [["111000"],["222999"]]
def rev(x):
return "".join(x[(i+1)*-1] for i in range(len(x)))
>>> [[rev(x) for x in z] for z in t]
[['000111'], ['999222']]
如果您可以使用step中的range参数,可以做一个示例建议:
def rev(x):
return ''.join(x[i-1] for i in range(0, -len(x), -1))
如果不能使用任何标准功能,如
reversed
或[::-1]
,则可以在循环中使用collections.deque
和deque.appendleft
。然后使用列表理解将逻辑应用于多个项目。你知道吗注意你可以使用一个列表,但是附加到列表的开头是低效的。你知道吗
你知道如何把一个序列一个接一个地复制到另一个序列,对吗?你知道吗
如果要反向复制序列,只需将新值添加到左侧而不是右侧:
这是你唯一需要的技巧。你知道吗
现在,这不是超高效的,因为字符串串联需要二次时间。您可以通过使用
collections.deque
(可以在常量时间中附加到左边)并在末尾调用''.join
来解决这个问题。但我怀疑你的老师是否期望你这么做。就用简单的方法。你知道吗当然,您必须循环
TextImage
将此应用于列表中每个子列表中的每个字符串。这可能就是他们希望你使用[:]
的原因。但这很简单,只是在列表上循环。你知道吗您可以不使用
[::-1]
,但可以将每个范围索引乘以-1。你知道吗如果您可以使用
step
中的range
参数,可以做一个示例建议:相关问题 更多 >
编程相关推荐