Для устранения пустых носителей после удаления:
slist = map(lambda s: s and s.strip(), slist)
slist = filter(None, slist)
Некоторые PROs:
def f1(slist):
slist = [s and s.strip() for s in slist]
return list(filter(None, slist))
def f2(slist):
slist = [s and s.strip() for s in slist]
return [s for s in slist if s]
def f3(slist):
slist = map(lambda s: s and s.strip(), slist)
return list(filter(None, slist))
def f4(slist):
slist = map(lambda s: s and s.strip(), slist)
return [s for s in slist if s]
%timeit f1(words)
10000 loops, best of 3: 106 µs per loop
%timeit f2(words)
10000 loops, best of 3: 126 µs per loop
%timeit f3(words)
10000 loops, best of 3: 165 µs per loop
%timeit f4(words)
10000 loops, best of 3: 169 µs per loop
<?php
$stop_date = '2009-09-30 20:24:00';
echo 'date before day adding: ' . $stop_date;
$stop_date = date('Y-m-d H:i:s', strtotime($stop_date . ' +1 day'));
echo 'date after adding 1 day: ' . $stop_date;
?>
Для PHP 5.2.0+ вы также можете сделать следующее:
$stop_date = new DateTime('2009-09-30 20:24:00');
echo 'date before day adding: ' . $stop_date->format('Y-m-d H:i:s');
$stop_date->modify('+1 day');
echo 'date after adding 1 day: ' . $stop_date->format('Y-m-d H:i:s');
Хотя я согласен с ответом Дуга Хейса, я хочу сказать, что причина, по которой ваш код не работает, заключается в том, что strtotime () ожидает INT в качестве второго аргумента, а не строки (даже той, которая представляет дату)
Если вы включите отчет о максимальных ошибках, вы увидите это как ошибку «Неправильно сформированное числовое значение», что соответствует уровню E_NOTICE.
Я всегда просто добавляю 86400 (секунд в день):
$stop_date = date('Y-m-d H:i:s', strtotime("2009-09-30 20:24:00") + 86400);
echo 'date after adding 1 day: '.$stop_date;
Это не лучший способ, но он работает!