字符串的嵌套列表,按空格分割

2024-09-28 22:04:03 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,这是我的第一篇帖子,如果我把它格式化得很奇怪或是什么的话,我很抱歉。总之,我目前正在python中尝试解决一个挑战。我应该在我的程序中读取一个文本表,我想让它做的基本上是把每行单词分成一个列表,然后让每个单词都有自己的索引。 这是我当前使用的代码:

with open(database, "r") as data:
    datatext = data.read()

datatext = datatext.replace(",", " ")

datarr = datatext.split("\n")

reader = csv.reader(datarr)

print([word for word in [row for row in reader]])

其中数据库表示文本文件。这样做的目的是使数据库中的每一行文本都有自己的嵌套列表,但它将所有由空格分隔的单词都转换为一个字符串,因此每个嵌套列表只有索引0。像这样:

[['name AGATC TTTTTTCT AATG TCTAG GATA TATC GAAA TCTG'], ['Albus 15 49 38 5 14 44 14 12'], ['Cedric 31 21 41 28 30 9 36 44'], ['Draco 9 13 8 26 15 25 41 39']... etc]

但实际上我想要的是:

[['name', 'AGATC', 'TTTTTTCT', 'AATG', 'TCTAG', 'GATA', 'TATC', 'GAAA', TCTG'], ['Albus', '15', '49', '38', '5', '14', '44', '14', '12']... etc]

基本上,我希望每个单词/字符串都是嵌套列表中自己的索引。谁能帮我一下吗?我一直在试着用谷歌搜索,但没有找到正确的解决方案。希望这不是写得模糊不清。非常适合任何答案:)

编辑: 如何写入文本文件:

name,AGATC,TTTTTTCT,AATG,TCTAG,GATA,TATC,GAAA,TCTG
Albus,15,49,38,5,14,44,14,12
Cedric,31,21,41,28,30,9,36,44
Draco,9,13,8,26,15,25,41,39

上次编辑:删除datatext.replace(…)解决了它:=)


Tags: name文本列表单词readeragatcaatgtatc
2条回答

如果没有您正在打开的数据库示例,很难提供帮助。但我可以想象是csv.reader在空格上分裂。尝试在该函数中播放参数delimiter。我想类似于csv.reader(datarr, delimiter=' ')的东西会起作用。但是,同样需要样本数据来处理

你把事情搞得太复杂了。以下内容应足够:

with open(database, "r") as data:
     reader = csv.reader(data)
     print([row for row in reader])

相关问题 更多 >