Python Forum
Simple list comprehension misunderstanding
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Simple list comprehension misunderstanding
#1
a = [1,4,9,16,25,36,49,64,81,100]
print(list(a[x] for x in range(6)))


gives me [1, 4, 9, 16, 25, 36] whereas

a = [1,4,9,16,25,36,49,64,81,100]
print(a[x] for x in range(6))
gives me <generator object <genexpr> at 0x030A8BB0>

What exactly is the latter error and why does it occur?
Reply
#2
it's not an error.
(a[x] for x in range(6)) is generator expression that returns iterator. when you pass it as argument to function like print() you can omit the brackets to same effect.
In the first example you use list() to convert the same generator to a list
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#3
(Oct-10-2019, 06:41 PM)buran Wrote: it's not an error.
(a[x] for x in range(6)) is generator expression that returns iterator. when you pass it as argument to function like print() you can omit the brackets to same effect.
In the first example you use list() to convert the same generator to a list

So in the first example it prints out the list, and in the second example it prints out what it is--which is a generator object (with iterating rule stored in memory address 0x030A8BB0, maybe?)?
Reply
#4
yes, the list being produced from converting the same generator expression
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  List Comprehension Issue johnywhy 5 506 Jan-14-2024, 07:58 AM
Last Post: Pedroski55
Question mypy unable to analyse types of tuple elements in a list comprehension tomciodev 1 470 Oct-17-2023, 09:46 AM
Last Post: tomciodev
  Using list comprehension with 'yield' in function tester_V 5 1,246 Apr-02-2023, 06:31 PM
Last Post: tester_V
  list comprehension 3lnyn0 4 1,407 Jul-12-2022, 09:49 AM
Last Post: DeaD_EyE
  List comprehension used differently coder_sw99 3 1,711 Oct-03-2021, 04:12 PM
Last Post: coder_sw99
  How to invoke a function with return statement in list comprehension? maiya 4 2,825 Jul-17-2021, 04:30 PM
Last Post: maiya
  List comprehension and Lambda cametan 2 2,236 Jun-08-2021, 08:29 AM
Last Post: cametan
  What is the difference between a generator and a list comprehension? Pedroski55 2 2,213 Jan-02-2021, 04:24 AM
Last Post: Pedroski55
  For Loop with List Comprehension muzikman 25 6,578 Dec-18-2020, 10:45 PM
Last Post: muzikman
  Using recursion instead of for loops / list comprehension Drone4four 4 3,134 Oct-10-2020, 05:53 AM
Last Post: ndc85430

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020