首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将带有分隔符的重复列表元素转换为列表?

如何将带有分隔符的重复列表元素转换为列表?
EN

Stack Overflow用户
提问于 2016-07-20 21:46:51
回答 4查看 54关注 0票数 0

我导入了一个CSV文件,它基本上是一个包含5个标题和5个元素的数据集的表。

使用此代码,我将数据转换为具有5位信息的个人列表(列表中的列表):

代码语言:javascript
复制
import csv
readFile = open('Category.csv','r')
categoryList = []
for row in csv.reader(readFile):
    categoryList.append(row)
readFile.close()

现在我有了一个列表[[a,b,c,d,e],[a,b,c,d,e],[a,b,c,d,e]...]

然而,在整个列表中的每个列表中的元素2 (categoryList[i][2])或'c‘是由可变长度的分隔符(':')分隔的字符串。如何将元素2转换为列表本身?基本上让它看起来像这样:

代码语言:javascript
复制
[[a,b,[1,2,3...],d,e][a,b,[1,2,3...],d,e][a,b,[1,2,3...],d,e]...]

我考虑遍历每个列表元素并找到元素2,然后使用.split(':')命令将这些值分离出来。

EN

回答 4

Stack Overflow用户

发布于 2016-07-20 21:54:09

你提出的解决方案是可行的。你只需要在读完文件后再去做。你可以先把它作为输入来做。

代码语言:javascript
复制
for row in csv.reader(readFile):
    row[2] = row[2].split(":") # Split element 2 of each row before appending
    categoryList.append(row)

编辑:我猜你知道拆分函数的用途。因此,我将解释row[2]

你有一个像[[a,b,c,d,e],[a,b,c,d,e],[a,b,c,d,e]...]这样的数据,这意味着每个row都像[a,b,c,d,e][a,b,c,d,e][a,b,c,d,e],所以每个row2都对应于c。使用这种方法,您可以在附加并将其转换为[[a,b,c,d,e],[a,b,c,d,e],[a,b,c,d,e]...]之前更改所有的c

票数 1
EN

Stack Overflow用户

发布于 2016-07-20 21:51:26

您可以对每一行使用列表理解,并将包含':'的项拆分为一个新的子列表

代码语言:javascript
复制
for row in csv.reader(readFile):
    new_row = [i.split(':') if ':' in i else i for i in row]
    categoryList.append(new_row)

如果行中还有其他需要在':'上拆分的项目,则可以使用此方法。

否则,如果只有一个包含':'的项目,则可以直接在索引上拆分

代码语言:javascript
复制
for row in csv.reader(readFile):
    row[2] = row[2].split(':')
    categoryList.append(row)
票数 0
EN

Stack Overflow用户

发布于 2016-07-20 21:52:39

不是很清楚你的结构,但是如果c是一个用:分隔的字符串,那么试试

列表(c.split(‘:’))

如果它解决了你的问题,请告诉我

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38483118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档