python - 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
如果有人能引导我朝着正确的方向前进,那就太好了!(另外,如果我的原始代码可以以更好的方式编写,请随时提出建议)
谢谢 :)
解决方案
相应的列表推导是
m = [[5, 4], [2, 3], [6, 7]]
res = [[item//2 if item%2==0 else item for item in items] for items in m]
推荐阅读
- java - 代号一将标签文本视为iOS中的字符串文字?
- google-sheets - 如何将数据从一张表自动复制到另一张表?
- html - 如何制作一个可以结合我的网站网址 + 输入文本的搜索按钮?
- algorithm - 使用邻接矩阵的补图算法
- continuous-integration - CI/CD 填充静态 html 文件?
- python - 打印具有人类可读时间的调度队列
- javascript - 为什么事件处理程序只在第一个 item 元素处切换类名而不在其余部分切换?
- java - Android小部件未填充
- file - 在 Go 中使用 struct 更新 mmap 文件
- laravel - 使用 SQS 管理同步作业