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 546 Jan-14-2024, 07:58 AM
Last Post: Pedroski55
Question mypy unable to analyse types of tuple elements in a list comprehension tomciodev 1 495 Oct-17-2023, 09:46 AM
Last Post: tomciodev
  Using list comprehension with 'yield' in function tester_V 5 1,265 Apr-02-2023, 06:31 PM
Last Post: tester_V
  list comprehension 3lnyn0 4 1,426 Jul-12-2022, 09:49 AM
Last Post: DeaD_EyE
  List comprehension used differently coder_sw99 3 1,740 Oct-03-2021, 04:12 PM
Last Post: coder_sw99
  How to invoke a function with return statement in list comprehension? maiya 4 2,867 Jul-17-2021, 04:30 PM
Last Post: maiya
  List comprehension and Lambda cametan 2 2,257 Jun-08-2021, 08:29 AM
Last Post: cametan
  What is the difference between a generator and a list comprehension? Pedroski55 2 2,234 Jan-02-2021, 04:24 AM
Last Post: Pedroski55
  For Loop with List Comprehension muzikman 25 6,709 Dec-18-2020, 10:45 PM
Last Post: muzikman
  Using recursion instead of for loops / list comprehension Drone4four 4 3,162 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