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 not working right Cris9855 3 912 Nov-04-2024, 03:46 PM
Last Post: DeaD_EyE
  Problem with List Comprehension in Python laurawoods 3 1,037 Aug-12-2024, 06:26 AM
Last Post: Pedroski55
  List Comprehension Issue johnywhy 5 1,813 Jan-14-2024, 07:58 AM
Last Post: Pedroski55
Question mypy unable to analyse types of tuple elements in a list comprehension tomciodev 1 1,548 Oct-17-2023, 09:46 AM
Last Post: tomciodev
  Using list comprehension with 'yield' in function tester_V 5 3,386 Apr-02-2023, 06:31 PM
Last Post: tester_V
  list comprehension 3lnyn0 4 2,341 Jul-12-2022, 09:49 AM
Last Post: DeaD_EyE
  List comprehension used differently coder_sw99 3 2,658 Oct-03-2021, 04:12 PM
Last Post: coder_sw99
  How to invoke a function with return statement in list comprehension? maiya 4 3,982 Jul-17-2021, 04:30 PM
Last Post: maiya
  List comprehension and Lambda cametan 2 3,063 Jun-08-2021, 08:29 AM
Last Post: cametan
  What is the difference between a generator and a list comprehension? Pedroski55 2 3,115 Jan-02-2021, 04:24 AM
Last Post: Pedroski55

Forum Jump:

User Panel Messages

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