python - 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]
但这不起作用。此命令无法正确识别和替换。发现被第一种方法替换的一些元素没有被这种方法替换,这很奇怪。因此,我想知道这里发生了什么。
谢谢。
解决方案
当我尝试你的代码时效果很好:
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]
也许你应该给一个样本records
,row
和record
推荐阅读
- c# - 如何从另一个脚本 Unity C# 2D 访问任何创建的游戏对象的属性
- c - 在C中查找未知数组的大小
- php - 为什么 DOMDocument::saveHTML() 的行为在将 UTF-8 编码为样式和脚本元素中的实体时会有所不同?
- powershell - PowerShell Invoke-RestMethod 截断最后一个周期
- fortran - 使用 Minpack 求解 S 曲线
- ruby - 为什么我们使用 html_safe?
- react-native - React Native 在 App.js 渲染中调用另一个 .js
- google-cloud-dataflow - 使用内部 IP 的云数据流作业?
- r - 表格不会在 Shiny 中呈现
- javascript - 使用 webpack splitChunks 防止重复