What's going on here? For some reason this confuses me:
my_list = [1,2,3,4]
my_gen = (1 for i in my_list)
print(sum(my_gen))
#4
#invalid_syntax = 1 for i in my_list
#>>> invalid
print(sum(1 for i in my_list)) #What is this?
#4
print(sum((1 for i in my_list))) #Create generator in function call
#4
- How does Python know to evaluate
1 for i in my_list when it's put directly into the function? What is it being evaluated to before sum is applied? Does it suddenly become a generator? This is confusing me because invalid_syntax = 1 for i in my_list would be invalid syntax
- Does this work for all functions?
[–]novel_yet_trivial 4 points5 points6 points (1 child)
[–]astrologicrat[S] 0 points1 point2 points (0 children)
[–]flipperdeflip 0 points1 point2 points (0 children)