python - 对 csv 对象的列表理解
问题描述
我有这段代码,我试图在其中进行列表理解data
:
with open('data.csv') as csvfile:
data = csv.reader(csvfile, delimiter=' ')
data1 = [x.replace('.', '-') for x in data]
但由于某种原因AttributeError: 'list' object has no attribute 'replace'
,我该如何解决这个问题?
data.csv 有
MMM
ABT
ABBV
ABMD
ACN
ATVI
ADBE
AMD
AAP
AES
AMG
AFL
A
APD
AKAM
ALK
ALB
解决方案
data
是列表列表,因此您需要遍历“行”:
with open('test.csv') as csvfile:
data = csv.reader(csvfile, delimiter=' ')
for row in data:
row = [col.replace('.', '-') for col in row]
编辑:
如果每行只有一个值,则不需要 csv 模块。
print ([line.replace('.', '-') for line in open('data.txt').read().splitlines()])
输出:
['MMM', 'ABT', 'ABBV', 'ABMD', 'ACN', 'ATVI', 'ADBE', 'AMD', 'AAP', 'AES', 'AMG', 'AFL', 'A', 'APD', 'AKAM', 'ALK', 'ALB']
推荐阅读
- android - 错误:程序类型已存在:com.google.android.material.appbar.AppBarLayout$1
- javascript - Angular将多个文件转换为base64字符串
- java - 检查图形是否是循环的
- mysql - 在 Spring 中保存后获取 AutoIncrement 值
- java - 即使在实施 Stackoverflow 答案后也无法解析 .andExpect() 方法
- excel - VBA:将数据从 Excel 行传输到另一个工作簿中的特定单元格,另存为并循环到下一行。
- oracle - PLSQL:将一个函数返回的数组分配给另一个函数中定义的数组
- dsl - 如果 xtext 中不存在 Import,则验证错误
- c# - 简单的注入器如何针对同一接口注册/解析单例集合
- python - 从 Python 接收 C++ 中的字符串