Python Forum
list comprehension invalid syntax
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
list comprehension invalid syntax
#1
the list comprehension in this code (see last line)

import datetime 
from datetime import timezone
from datetime import timedelta
from datetime import time
import matplotlib.dates as dates

customdate = datetime.datetime(2016, 1, 1, 13, 30)
y = [ 2,4,6,8,10,12,14,16,18,20 ]
x = [customdate + datetime.timedelta(hours=i) for i in range(len(y))]


a=x[i for i in range(10)].time()
gives me this error

Error:
runfile('C:/Users/Desktop/python ode/hours.py', wdir='C:/Users/Desktop/python ode') Traceback (most recent call last): File "C:\Users\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2961, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "<ipython-input-1003-532af0fdc54e>", line 1, in <module> runfile('C:/Users/Desktop/python ode/hours.py', wdir='C:/Users/Desktop/python ode') File "C:\Users\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 668, in runfile execfile(filename, namespace) File "C:\Users\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/Desktop/python ode/hours.py", line 28 a=x[i for i in range(10)].time() ^ SyntaxError: invalid syntax
I am trying to print all those values in range 10, which it works with a regular for loop, but
when I want to recall them out of the loop, only one value is printed

customdate = datetime.datetime(2016, 1, 1, 13, 30)
y = [ 2,4,6,8,10,12,14,16,18,20 ]
x = [customdate + datetime.timedelta(hours=i) for i in range(len(y))]

for i in range(10):
    a=x[i].time() 
    print(a)   #prints all values
    
customdate = datetime.datetime(2016, 1, 1, 13, 30)
y = [ 2,4,6,8,10,12,14,16,18,20 ]
x = [customdate + datetime.timedelta(hours=i) for i in range(len(y))]

for i in range(10):
    a=x[i].time() 
    
    
print(a)  # only one value is printed
so, how do I print all of the values by staying out of the for loop ?
Reply
#2
a=[x[i].time() for i in range(10)]
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  List comprehension: paul18fr 1 1,373 Oct-29-2021, 05:36 PM
Last Post: Yoriz
  How to find what is causing the unboundlocalerror 'crumb' and invalid syntax error? JonathanBanks 1 2,292 Jul-28-2020, 11:46 AM
Last Post: Yoriz
  SyntaxError: invalid syntax Truman 3 2,950 Mar-10-2020, 03:16 PM
Last Post: Truman
  Python List Comprehension. rinu 3 3,043 Jan-08-2019, 12:30 PM
Last Post: perfringo
  Help me understand a simple list comprehension PiPy 6 3,928 Oct-17-2018, 07:59 PM
Last Post: PiPy
  %matplotlib inline , invalid syntax yamoon 1 13,064 Jul-12-2018, 07:22 AM
Last Post: volcano63
  Misterious invalid syntax Galedon 3 3,466 Mar-30-2018, 03:49 PM
Last Post: Galedon

Forum Jump:

User Panel Messages

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