2017-01-26 4 views
-2

Я пытаюсь сделать график временных рядов, и у меня есть точки данных каждую секунду в течение примерно 50 секунд (что в моем случае находится в UTC). Python орет на меня о моем массиве данных в оси х моего участка, который выглядит следующим образом:Ошибка синтаксиса Python в двоеточии в списке

%run "C:/Users/Jeff/Desktop/Python/STEPS_data.py" 
File "C:\Users\Jeff\Desktop\Python\STEPS_data.py", line 3 
x = [23:13:51,23:13:52,23:13:53,23:13:54,23:13:55,23:13:56,23:13:57,23:13:58,23:13:59,23:14:00,23:14:01,23:14:02,23:14:03,23:14:04,23:14:05,23:14:06,23:14:07,23:14:08,23:14:09,23:14:10,23:14:11,23:14:12,23:14:13,23:14:14,23:14:15,23:14:16,23:14:17,23:14:18,23:14:19,23:14:20,23:14:21,23:14:22,23:14:23,23:14:24,23:14:25,23:14:26,23:14:27,23:14:28,23:14:29,23:14:30,23:14:31,23:14:32,23:14:33,23:14:34,23:14:35,23:14:36] 
    ^
SyntaxError: invalid syntax 

Там куча другой информации о сюжете после этого, но она будет зацикливаться на этой линии , где говорится, что у меня есть неверная синтаксическая ошибка в первом двоеточии элемента массива 23:14:23, что для меня не имеет смысла. Я попытался сделать массив своей переменной x1 и просто сказал x = x1, но это только толкало точку синтаксической ошибки на один символ.

Это похоже на действительно тупую проблему, но я в тупике.

+3

':' там не допускается. Вы забыли обернуть их в '' '' (т. Е. '23:13:51"), чтобы пометить их как строки? – MSeifert

+0

ОК, поэтому я должен поместить каждый элемент массива в кавычки, если у меня есть двоеточие в элементе? – jwetter10

+0

Вы хотите преобразовать элементы списка в объекты datetime? – MYGz

ответ

1

Проблема заключается в том, что : не допускается везде, например:

>>> a = 10:2 
    File "<ipython-input-12-63c21fb7e990>", line 1 
    a = 10:2 
     ^
SyntaxError: invalid syntax 

Я думаю, что вы хотите их как строки (в струнах : допускается):

l = ['23:13:51', '23:13:52', '23:13:53', '23:13:54', '23:13:55', '23:13:56', 
    '23:13:57', '23:13:58', '23:13:59', '23:14:00', '23:14:01', '23:14:02', '23:14:03', 
    '23:14:04', '23:14:05', '23:14:06', '23:14:07', '23:14:08', '23:14:09', '23:14:10', 
    '23:14:11', '23:14:12', '23:14:13', '23:14:14', '23:14:15', '23:14:16', '23:14:17', 
    '23:14:18', '23:14:19', '23:14:20', '23:14:21', '23:14:22', '23:14:23', '23:14:24', 
    '23:14:25', '23:14:26', '23:14:27', '23:14:28', '23:14:29', '23:14:30', '23:14:31', 
    '23:14:32', '23:14:33', '23:14:34', '23:14:35', '23:14:36'] 

В случае, если вы не хотите добавлять все эти '' вручную, просто оберните все это как строку и разделите ее:

>>> l = "[23:13:51,23:13:52,23:13:53,23:13:54,23:13:55,23:13:56,23:13:57,23:13:58,23:13:59,23:14:00,23:14:01,23:14:02,23:14:03,23:14:04,23:14:05,23:14:06,23:14:07,23:14:08,23:14:09,23:14:10,23:14:11,23:14:12,23:14:13,23:14:14,23:14:15,23:14:16,23:14:17,23:14:18,23:14:19,23:14:20,23:14:21,23:14:22,23:14:23,23:14:24,23:14:25,23:14:26,23:14:27,23:14:28,23:14:29,23:14:30,23:14:31,23:14:32,23:14:33,23:14:34,23:14:35,23:14:36]" 
>>> l[1:-1].split(',') 

или вы хотели бы их как datetime s?

>>> import datetime 
>>> [datetime.datetime.strptime(t, '%H:%M:%S') for t in l[1:-1].split(',')] 

или time s?

>>> [datetime.datetime.strptime(t, '%H:%M:%S').time() for t in l[1:-1].split(',')] 
+0

@ jwetter10 Добро пожаловать :) – MSeifert

+1

@ jwetter10 Но вы не сказали, какая часть ответа решила вашу проблему? : D – MYGz