Qua*_*ine 4 python python-2.7 python-3.x
所以我刚刚开始学习Python,我拿起一本用Python 2编写的书,但我使用Python3.6来编译。所以我对这些差异不是很熟悉。
当我写这个的时候
movies={}
for line in open (path+'/u.item'):
(id,title)=line.split('|')[0:2]
movies[id]=title
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
(id,title)=line.split('|')[0:2]
TypeError: list indices must be integers or slices, not float
Run Code Online (Sandbox Code Playgroud)
我不太确定 (id,title)=line.split("|")[0:2] 正在做什么。请帮助我理解。
看起来每个都line应该是一个带有一个或多个管道字符 ( |) 的字符串。
例如line = "This|is|an|example"
line.split(\'|\')在每次出现分隔符时将字符串分割成一个数组(Python 称之为“列表”)。分隔符是作为参数传递给 的字符串split(),在本例中是管道字符。
因此,在我的示例中,line.split(\'|\')返回[\'This\', \'is\', \'an\', \'example\'].
末尾的括号表示“现在我们已将字符串拆分为数组,请给我该数组中的每个项目,从索引 0 到 \xe2\x80\x94,但不包括!\xe2\x80\x94index 2 ”。(换句话说,给我数组中的前两项。)
\n\n继续我的示例,line.split(\'|\')[0:2]返回[\'This\', is\'].
该=符号将返回值 (\'This\'和\'is\')分别赋给id和title。
结果是id == \'This\'和title == \'is\'。
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |