我有一个多维列表,它基本上是嵌套在列表中的字符串列表。我希望一个列表被反转,并且列表中的列表项也要反转,并且列表中的字符串也应该被反转。
例如:我有一个列表
[
['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']]
答案 0 :(得分:5)
您想要这种单线:
result = [[x[::-1] for x in reversed(y)] for y in reversed(lst)]
注释:
reversed(lst)
比lst[::-1]
快,因为它不会创建新列表,而只是向后迭代(在这种情况下,因为长度已知,所以可以工作)。x[::-1]
保持原样,因为将字符串反转为字符串比"".join(reversed(x))
快得多。