所以我刚开始学习 python,我拿起一本用 python 2 编写的书,但我正在使用 python3.6 进行编译。所以我不是很熟悉这些差异。
当我写这篇文章的时候
movies={}
for line in open (path+'/u.item'):
(id,title)=line.split('|')[0:2]
movies[id]=title
我收到这个错误
(id,title)=line.split('|')[0:2]
TypeError: list indices must be integers or slices, not float
我不太确定 (id,title)=line.split("|")[0:2] 在做什么。请帮助我理解。
最佳答案
看起来每一行 line
都应该是一个带有一个或多个竖线字符 (|
) 的字符串。
例如line = "This|is|an|example"
line.split('|')
在每次出现 delimiter 时将字符串拆分为一个数组(Python 称之为“列表”)。分隔符是作为参数传递给 split()
的字符串,在本例中是管道字符。
因此,在我的示例中,line.split('|')
返回 ['This', 'is', 'an', 'example']
。
末尾的括号表示“现在我们已经将字符串拆分为一个数组,请给我该数组中的每一项,从索引 0 到——但不包括!——索引 2。” (换句话说,给我数组中的前两项。)
继续我的示例,line.split('|')[0:2]
返回 ['This', is']
。
=
符号将返回值('This'
和 'is'
)分配给 id
并且title
,分别。
结果是 id == 'This'
和 title == 'is'
。
关于python - 什么是 (id,title)=line.split ('|' )[0 :2] do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51729964/