Как в цикле обозначить из списка значения None другим
Я знаю что возможно уже есть где-то решение, но я не нашёл.
У меня есть список , пример:
(None, 'Дмитрий', 'Renault Duster 2020', 'AA1111AA')
('Москва', 'Сергей', 'Opel Zafira 2009', 'А999ААА777')
('Пермь', 'Александр', 'BMW 318 2011', None)
У меня есть строка кода которая обрабатывает этот лист, но иногда попадаются None и это мешает читабельности.
Мне бы хотелось там где None заменить на, допустим, не найдено, а вообще лучше убрать ту строку, вот пример моего кода (возможно ударит по глазам):
city = ''
name = ''
marka = ''
carnumber = ''
for item in rows:
city += '\nГород: '+str(item[0])
name += '\nИмя: '+str(item[1])
marka += '\nМарка машины: '+str(item[2])
carnumber += '\nГос.Номер машины: '+str(item[3])
final_str = city + name + marka + carnumber
Получится результат на примере первой стоки листа:
Город: None
Имя: Дмитрий
Марка машины: Renault Duster 2020
Гос.номер машины: AA1111AA
Мне бы хотелось убрать строку которая содержит None, как это можно сделать более менее нормально?
Ответы (3 шт):
например такой код оставит только те данные, где нет None:
rows = [(None, 'Дмитрий', 'Renault Duster 2020', 'AA1111AA'),
('Москва', 'Сергей', 'Opel Zafira 2009', 'А999ААА777'),
('Пермь', 'Александр', 'BMW 318 2011', None)]
for row in filter(lambda obj: all(map(lambda elem: elem is not None, obj)), rows):
print(row)
import json
data = [
(None, 'Дмитрий', 'Renault Duster 2020', 'AA1111AA'),
('Москва', 'Сергей', 'Opel Zafira 2009', 'А999ААА777'),
('Пермь', 'Александр', 'BMW 318 2011', None),
]
ks = ['Город', 'Имя', 'Марка машины', 'Гос.номер машины']
dt = dict(zip(ks, data[0]))
print(json.dumps(dt, ensure_ascii=False, indent=2))
{ "Город": null, "Имя": "Дмитрий", "Марка машины": "Renault Duster 2020", "Гос.номер машины": "AA1111AA" }
dt = {k: d for k, d in zip(ks, data[0]) if d}
print(json.dumps(dt, ensure_ascii=False, indent=2))
{ "Имя": "Дмитрий", "Марка машины": "Renault Duster 2020", "Гос.номер машины": "AA1111AA" }
Я это сделал по другому, просто взял и в цикле начал проверку на if item[0] is None и так далее, конечно получается говно-код но по-другому без использования других библиотек я не знаю как