Skip to main content
 首页 » 编程设计

python之反转列表中的字符串并进一步反转嵌套列表中的列表

2025年05月04日37langtianya

我有一个多维列表,它基本上是一个嵌套在列表中的字符串列表。我想要一个列表被反转,列表中的列表项也被反转,列表中的字符串也应该被反转。

例如:我有一个列表

[ 
    ['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)) 将字符串反转为字符串。