首页 > 解决方案 > 使用列表推导转换列表

问题描述

这是我正在处理的 Python 列表:

nn,mm,pp = [1 if x =='0' else -1 for x in [['0','0'],['1','0'],['1','1']]]

我的目标是制作nn = [1,1],mm = [-1,1]pp = [-1,-1]. 我可以使用for循环来做到这一点,但它看起来很长。我想知道有没有办法使用列表理解来做到这一点?谢谢!

标签: pythonlist-comprehension

解决方案


您正在处理嵌套列表,这意味着对于这个特定问题,您需要使用嵌套循环:

>>> nested = [['0', '0'], ['1', '0'], ['1', '1']]
>>> [[1 if value == "0" else -1 for value in sublist] for sublist in nested]
[[1, 1], [-1, 1], [-1, -1]]

推荐阅读