Как не выводить значения "" и 0, не исключая их из списка?? Python
Есть 2 списка:
list = [0, 1, 3, 22]
list2 = ["", "Телевизор", "Стол", "Обои"]
Можно ли не выводить значения "" и 0? При этом не исключать их из этих списков
Ответы (2 шт):
Автор решения: Сергей Ш
→ Ссылка
def zero(lst):
for i in lst:
if i:
print(i)
lst = [0, 1, 3, 22]
lst2 = ["", "Телевизор", "Стол", "Обои"]
zero(lst)
zero(lst2)
1
3
22
Телевизор
Стол
Обои
for x in zip(lst, lst2):
quantity, item = x
if quantity:
print(quantity, item)
1 Телевизор
3 Стол
22 Обои
Автор решения: Namerek
→ Ссылка
Немного разовью тему и предположу, что пустое соответствующее значение в списке наименований имеет не только индекс 0 но и другие индексы
from itertools import compress
ids = [0, 1, 3, 22, 52, 88]
names = ["", "Телевизор", "Стол", "Обои", "", "Стул"]
# Для получения сортированного вывода можно обернуть compress в sorted
# вместо map(bool, names) можно подставить просто names
# но для наглядности оставлю так
for key, val in compress(zip(ids, names), map(bool, names)):
print(key, val)
# 1 Телевизор
# 3 Стол
# 22 Обои
# 88 Стул
print(
ids,
names,
sep='\n'
)
# Списки остались не измененнными
# [0, 1, 3, 22, 52, 88]
# ['', 'Телевизор', 'Стол', 'Обои', '', 'Стул']