一直收到错误'list'对象没有属性'split
我在尝试逐行逐字地拆分我的链接列表时,一直遇到这个分割错误。
我有一个文件,里面有超过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
)的方法,而列表是没有这个方法的,所以你就出现了错误。