我发现很难理解以下代码的工作原理:
mylist = [1,2,3,4,5]
print(sum(i for i in mylist))
上面的代码给出了正确的结果15,但是不应该在声明之后而不是之前使用“ i”吗?
答案 0 :(得分:4)
阅读generator expressions上的文档。
您将看到,您正在(有效地)创建一个迷你发电机,等效于:
def iter_list(lst):
for i in lst:
yield i
myList = [1,2,3,4,5]
print(sum(iter_list(myList)))
答案 1 :(得分:1)
Python是一种非类型化语言。
这意味着您无需声明诸如i
之类的变量。
通过进行编辑,您可以使编译器更加清晰,并了解您的理解:
mylist = [1,2,3,4,5]
print(sum(int(i) for i in mylist ))
因此,Python在给变量赋类型方面非常聪明,并且与静态C代码相比也非常灵活。
答案 2 :(得分:1)
在这种特殊情况下(list-compherensions),语法允许这样做
答案 3 :(得分:1)
由于sum()...的语法...可迭代且起始位置
select count(*) FROM UserName where MONTH(signed_in) = MONTH(getdate()) AND YEAR(signed_in) = YEAR(getdate());
您可以在其中查看示例-> https://www.programiz.com/python-programming/methods/built-in/sum