Здесь у Вас есть некоторые альтернативы: http://www.peterbe.com/plog/uniqifiers-benchmark
Самый Быстрый:
def f7(seq):
seen = set()
seen_add = seen.add
return [x for x in seq if not (x in seen or seen_add(x))]
, Почему присваиваются seen.add
к seen_add
вместо того, чтобы просто звонить seen.add
? Python является динамическим языком и разрешением seen.add
, каждое повторение является более дорогостоящим, чем разрешение локальной переменной. seen.add
, возможно, изменился между повторениями, и время выполнения не достаточно умно для исключения этого. Для избегания рискованных действий это должно проверить объект каждый раз.
, Если бы Вы планируете использование этой функции много на том же наборе данных, возможно, Вы были бы более обеспечены с упорядоченным множеством: http://code.activestate.com/recipes/528878/
O (1) вставка, удаление и членская проверка на операцию.
(Маленькое дополнительное примечание: seen.add()
всегда возвраты None
, таким образом, or
выше там только как способ делать попытку обновления набора, и не как неотъемлемой части логического теста.)
Я так понимаю, это GMT, UTC и все, что указано в time.tzname.
>>> for t in time.tzname:
... print t
...
Eastern Standard Time
Eastern Daylight Time
>>> datetime.strptime('2009-08-19 14:20:36 Eastern Standard Time', "%Y-%m-%d %H:%M:%S %Z")
datetime.datetime(2009, 8, 19, 14, 20, 36)
>>> datetime.strptime('2009-08-19 14:20:36 UTC', "%Y-%m-%d %H:%M:%S %Z")
datetime.datetime(2009, 8, 19, 14, 20, 36)
>>> datetime.strptime('2009-08-19 14:20:36 GMT', "%Y-%m-%d %H:%M:%S %Z")
datetime.datetime(2009, 8, 19, 14, 20, 36)
Эти настройки, конечно, зависят от машины, и ваши, скорее всего, будут другими.
Это из модуля времени
, но я почти уверен, что это применимо к datetime
:
на значениях, содержащихся в tzname и
правда ли дневной свет. Из-за
это зависит от платформы, за исключением
для распознавания UTC и GMT, которые
всегда известны (и считаются
часовые пояса, отличные от летнего).
https://docs.python.org/library/time.html
В моей системе:
>>> import time
>>> time.tzname
('PST', 'PDT')
Использование чего-либо, кроме этих, в datetime.strptime приводит к исключению. Итак, посмотрите, что у вас есть на вашем компьютере.