我有一个多维列表,它基本上是一个嵌套在列表中的字符串列表。我想要一个列表被反转,列表中的列表项也被反转,列表中的字符串也应该被反转。
例如:我有一个列表
[
['123', '456', '789'],
['234', '567', '890'],
['345', '678', '901']
]
我想要的结果是
[
['109', '876', '543'],
['098', '765', '432'],
['987', '654', '321']
]
我已经尝试过该代码,它正在运行。但是我们可以使用列表理解进一步简化吗?
下面是我试过的代码。
old = [['123', '456', '789'], ['234', '567', '890'], ['345', '678', '901']]
new = [];
for x in old[::-1]:
z = [];
for y in x:
z.insert(0, y[::-1])
new.append(z)
print(new)
输入
[['123', '456', '789'], ['234', '567', '890'], ['345', '678', '901']]
输出
[['109', '876', '543'], ['098', '765', '432'], ['987', '654', '321']]
请您参考如下方法:
你想要这条单线:
result = [[x[::-1] for x in reversed(y)] for y in reversed(lst)]
注意事项:
reversed(lst)比lst[::-1]快,因为它不创建新列表,它只是向后迭代(在那种情况下它之所以有效,是因为长度是已知的)。x[::-1]保持原样,因为它比"".join(reversed(x))将字符串反转为字符串。
