python - 什么是 (id,title)=line.split ('|' )[0 :2] do?

标签 python python-3.x python-2.7

所以我刚开始学习 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/

相关文章:

python - 如何使此列表功能更快?

python - 验证错误 : Redefined outer name from outer scope

python - 导入我的 'random' 文件时脚本失败

python - Tkinter 中的平稳过渡

python - Python 中字符串的相等性

python - Django - 从 geraldo 报告中删除无关的 unicode 符号

python - 对字符串列表进行排序

django - 如何使用 Django 检查 firebase 数据库中的 child 是否存在?

python - fminunc 在 numpy 中交替

python - 使用 Python For 循环保存来自多个坐标的输出距离