des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Python отловить none?

Записываю в файл массив таким образом
f.write('[' + str(r[i])[:-2] + '000,' + str(e[i]) + ',' + str(c[i]) + '],')

но если нет значения в массиве то записывается none. как записывать 0 а лучше вообще не добавлять строку в массив?
  • Вопрос задан
  • 2461 просмотр
Решения вопроса 2
adugin
@adugin Куратор тега Python
Руки надо отрывать за такой говнокод на питоне...
Вот как надо:
data = '[{0}000,{1},{2}],'.format(str(r[i])[:-2], e[i], c[i])
f.write(data)

Что за шаманство с r[i], какого типа эта переменная? Тоже через .format() прогнать.
И что-то мне подсказывает, что здесь хорошо пойдёт json.dumps()

И ответ на сам вопрос:
>>> x = None
>>> x or 0
0


from itertools import izip
...

data = izip(r, e, c)
for trio in data:
    if all(trio):
        entry = '[{:.0f}000,{},{}],'.format(*trio)
        f.write(entry)


from itertools import izip, ifilter
...

for triplet in ifilter(all, izip(r, e, c)):
    entry = '[{:.0f}000,{},{}],'.format(*triplet)
    f.write(entry)
Ответ написан
@grinds
if (r[i]):
f.write...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
des1roer
@des1roer Автор вопроса
ученье - свет, а неученье - приятный полумрак
if (e[i]is not None):
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы