一直收到错误'list'对象没有属性'split

1 投票
1 回答
3087 浏览
提问于 2025-04-18 01:41

我在尝试逐行逐字地拆分我的链接列表时,一直遇到这个分割错误。

我有一个文件,里面有超过20000个链接。这些链接被放在一个叫“links”的列表里。

到目前为止我的代码是:

import networkx as nx

# Create graph
network_graph = nx.Graph()

path = []
with open('paths_finished.tsv','r') as tsv:
    paths = [line.strip().split('\t') for line in tsv]  
    newPath = paths[16:]


links = []    
for line in newPath:
    links.append(line[3:4])

newList = []

for i in links:
    newList.append(i.split(';'))

print newList

这个链接列表的长度是51318。我想把列表中每个链接里的“ ; ”分开。

比如文件中的第一个链接是:

['14th_century;15th_century;16th_century;Pacific_Ocean;Atlantic_Ocean;Accra;Africa;Atlantic_slave_trade;African_slave_trade'], 

然后我想逐字拆分它,所以我得到了:

['14th_century 15th_century 16th_century Pacific_Ocean Atlantic_Ocean Accra Africa Atlantic_slave_trade African_slave_trade'], 

1 个回答

2

首先,正如Martijn Pieters所说,你的缩进有问题。很难猜测你到底想表达什么,请修正一下。不过:

paths = [line.strip().split('\t') for line in tsv]  

line.split('\t') 这个操作已经返回了一个列表。你把这个列表放进了 path 里,所以 path 现在是一个列表的列表。在这里,你对这个列表的列表进行了遍历:

for line in newPath:
   links.append(line[3:4])

所以 links 也会是一个列表的列表。最后:

for i in links:
   newList.append(i.split(';'))

你试图对 i 调用 split,但 i 是一个列表。split 是字符串(str)的方法,而列表是没有这个方法的,所以你就出现了错误。

撰写回答