Как сделать цикл склейки имени и числа?
Есть два списка prod_name = [ ] и price = [ ]. В первый летит такое:
(item['title'],domen+item['href'])
В список прилетает такое значение: Объявление «Playstation 4 Pro 1Tb (магазин, гарантия)» 3 фотографии,
ссылка, а во вторую летит ценник - допустим, 1000. Хочу сделать цикл склейки prod_name и price по индексу, то есть, примерно так:
print(prod_name[conut]+price[count])
, где count - переменная со значением 0 по стандарту, но в последствии count увеличивается на 1 путём count =+ 1.
Ответы (2 шт):
Создайте список словарей. Каждый элемент словаря в списке - это какое-то объявление. А внутри словаря сделайте ключи и значения. Потом обращайтесь по ним. Примерно так:
lst_tovar = []
lst_img = ['foto1.jpg', 'foto2.jpg']
data_tovar = {
'price': 100,
'name': 'Playstation 4 Pro 1Tb (магазин, гарантия)',
'lst_img': lst_img,
}
lst_tovar.append(data_tovar)
Ну можно, конечно на прямую добавлять - без data_tovar, но это на Ваше усмотрение.
Но по мне лучше так:
class Tovar():
def __init__(self, price, name, lst_img_name):
self.price = price
self.name = name
self.lst_img_name = lst_img_name
def print_tovar_cena(self):
print(f'Товар{self.name} \n Цена:{self.price}')
lst_objTovar = []
lst_img = ['foto1.jpg', 'foto2.jpg']
lst_objTovar.append(Tovar(price=100,
name='Playstation 4 Pro 1Tb (магазин, гарантия)',
lst_img_name=lst_img))
for tovar in lst_objTovar:
tovar.print_tovar_cena()
А если хотите чтоб ID Вашего товара был:
for id, tovar in enumerate(lst_objTovar):
print('id:', id)
tovar.print_tovar_cena()
В питоне "склейка" двух списков одинаковой длины делается через zip:
for prod_item, price_item in zip(prod_name, price):
print(prod_item, price_item)
Если счётчик зачем-то всё же нужен ещё, то оборачиваете zip дополнительно в enumerate. А так параллельный перебор делается без счётчика.