【问题标题】:Converting a list of strings into an array of strings将字符串列表转换为字符串数组
【发布时间】:2014-02-05 22:10:14
【问题描述】:

我有一个字符串列表,其中每个字符串本质上是从 .csv 程序中提取的一行数据。 例如:

data[0] = '2014-01-31,46.83,48.55,46.80,48.03,3414400,48.03'

data[1] = '2014-01-30,47.47,48.11,47.29,48.00,2083900,48.00'

...等等。

我想把它转换成一个二维列表,这样:

newData[0][0] = '2014-01-31'
newData[0][0] = '2014-01-30'
newData[1][0] = '46.83'
newData[1][1] = '47.47'

...等

也就是说,我想在每个 , 处拆分字符串,但是当我尝试使用 data.split(",") 时,它不想这样做,因为它是一个列表。有什么想法吗?

【问题讨论】:

  • 请修正您的格式
  • 使用csv.reader,这样您的数据就永远不会进入那种格式。

标签: python arrays string list


【解决方案1】:

在列表的项目上应用str.split:

newData = [item.split(',') for item in data] 

演示:

>>> data = ['2014-01-31,46.83,48.55,46.80,48.03,3414400,48.03', '2014-01-30,47.47,48.11,47.29,48.00,2083900,48.00']
>>> newData = [item.split(',') for item in data] 
>>> newData[0][0]
'2014-01-31'
>>> newData[1][0]
'2014-01-30'

正如其他人指出的那样,您应该使用 csv 模块从 csv 文件中读取数据,考虑到该文件包含:

2014-01-31,46.83,48.55,46.80,48.03,3414400,48.03
2014-01-30,47.47,48.11,47.29,48.00,2083900,48.00

此代码将提供所需的输出:

import csv
with open('file.csv') as f:
    reader = csv.reader(f)
    data = list(reader)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    相关资源
    最近更新 更多