猿问

如何将多行合并到一个列表中而不是单独的列表?

我有 CSV 文件中的多行需要合并以创建一个列表。


我的数据集将如下所示;


column 1       column 2   column3      column 4 ....... all the way to column 10

A              1           2             3                  4 5 6 7 8 9 10

B              5           10            15                  16 17 18 19 20

目前我的代码如下所示:


cd1 = []

cd2 = []

cd3 = []

cd4 = []

cd5 = []

cd6 = []

cd7 = []

cd8 = []

cd9 = []

cd10 = []



#create lists with values from rows 

for row in physiciancounts:

    patID.append(row[0]) 

    cd1.append(row[2])

    cd2.append(row[3])

    cd3.append(row[4])

    all the way till row 10


# then I'll merge it using zip

我想知道是否有一种更Pythonic的方法来做到这一点,而不是创建多个列表并将它们合并在一起。


输出看起来像这样:


(1,2,3,4,5,6,7,8,9,10)

(5,10,15,16,17,18,19,20)

我不包括第一列,因为它需要是一个单独的列表。我没有收到错误;我只是想看看是否有更好的方法来做到这一点。仍然是 python 的新手,所以我很挣扎。我也无法在我正在做的事情范围内执行一行 for 循环。


慕的地10843
浏览 59回答 1
1回答

慕村225694

如果我正确理解你的问题,只需添加另一个循环。column_count = 10cd = [[]] * column_countfor row in physiciancounts:    for field in range(column_count):        cd[field].append(row[field])这也不必要地收集第二列(您在问题中称之为“第一”,即索引 1);如果你想避免这种情况,也许可以在循环if field != 1:内添加for。你的问题也不清楚是10列还是11列;如果需要的话也许可以使用column_count = 11。
随时随地看视频慕课网APP

相关分类

Python
我要回答