我有一个列表,有点类似于下面的列表。
lines = ['这是第1行',
'这是另一条线',
'这是第三行。第03行。']
当我运行return
语句来处理该行的len
时,
for line in lines:
return(len(line))
生成以下错误:
档案“”,第2行 返程(LEN(线))
^
SyntaxError:'return'在函数外
但我可以print
行的长度,
for line in lines:
print(len(line))
结果:
14 p 20
32
此实例中return
语句在函数外的确切程度如何?
答案 0 :(得分:3)
您的缩进可能不一致。根据PEP-8的建议,每个缩进级别使用四个空格。其次,它应该在一个函数内部。第三,您的退货声明不会根据需要返回所有项目的长度。
答案 1 :(得分:2)
return函数用于将值传递回调用某个函数的位置。我看到它的方式,你基本上是试图覆盖返回值。您应该在执行某些操作的函数中使用它并返回值。您的循环和返回语句似乎不在函数中。
在下面的示例中,我将列表中的每个项目传递给check_len函数,该函数显然会检查项目的长度并将其返回。然后,打印列表中每个项目的长度。
示例:
var stats = {
'operator_1': {
conversions:
[
{
id: '3f002ab58',
date: 13/03/2016
},
{
id: '4d002fb18',
date: 14/03/2016
}
]
},
'opertor_2': {
conversions:
[
{
id: '1e03021149',
date: 21/03/2016
},
{
id: '4bbc102fb18',
date: 11/03/2016
}
]
}
}
var countries = [
{id : '4bbc102fb18', country : 'russia'},
{id : '33f3897300a', country : 'australia'},
{id : '4d002fb18', country : 'usa'}
]
countries.map(country => {
Object.keys(stats).map(operator => {
let match = stats[operator].conversions.find(item => item.id === country.id)
if (match) match.country = country.country
})
})
console.log(stats)