首页 > 解决方案 > 对 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

标签: pythonlist-comprehension

解决方案


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']

推荐阅读