首页 > 解决方案 > Python列表理解缺少信息

问题描述

我正在尝试将以下代码实现为列表理解:

def incrementValues(m): 
    for i in range(len(m)):
        for ii in range(len(m[i])):
            if m[i][ii] % 2 == 0:
               m[i][ii] //=2 
    return m

m = [[5, 4], [2, 3], [6, 7]]

print(incrementValues(m))

到目前为止,我有:

[[m for m in range(len(m))] for n in range(len(m))]

但我无法弄清楚这些信息的去向:

if m[i][ii] % 2 == 0:
    m[i][ii] //=2 

如果有人能引导我朝着正确的方向前进,那就太好了!(另外,如果我的原始代码可以以更好的方式编写,请随时提出建议)

谢谢 :)

标签: pythonlist

解决方案


相应的列表推导是

m = [[5, 4], [2, 3], [6, 7]]
res = [[item//2 if item%2==0 else item for item in items] for items in m]

推荐阅读