2014-02-05 4 views
0

У меня есть список строк, где каждая строка - это, по существу, строка данных, втянутых из программы .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(",") он не хочет этого делать, потому что это список. Есть идеи?

+0

пожалуйста исправить форматирование – njzk2

+2

Использовать 'csv.reader' так что ваши данные никогда не попадает в этот формат. – roippi

ответ

4

Применение 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) 
Смежные вопросы