首页 > 解决方案 > python将元素替换为列表理解中的列表

问题描述

我正在尝试使用列表理解来使列表准备好输出到 csv 文件。

当我写

record[:] = [[', '.join(row)] if element == int(row[4]) else element for element in records]

它输出我想要的。但由于 csv 输出格式需要在列表中包含列表,我需要将 else 部分中未更改的“元素”替换为列表。因此,我尝试了

record[:] = [[', '.join(row)] if element == int(row[4]) else [element] for element in records]

但这不起作用。此命令无法正确识别和替换。发现被第一种方法替换的一些元素没有被这种方法替换,这很奇怪。因此,我想知道这里发生了什么。

谢谢。

标签: pythonlistcsvlist-comprehension

解决方案


当我尝试你的代码时效果很好:

row = ['1','2','3','4','5']
records = [6,7,8,9,0,10,5,11,12]

res = [[', '.join(row)] if element == int(row[4]) else element for element in records]
res = [[', '.join(row)] if element == int(row[4]) else [element] for element in records]

也许你应该给一个样本recordsrowrecord


推荐阅读