Python. Как связать нумерацию вывода списка и ввод данных пользователем

Рейтинг: -1Ответов: 2Опубликовано: 02.03.2023

Есть некоторый словарь с данными. Из него берутся нужные данные и выводятся на экран с помощью цикла for в список с нумерацией. Я же хочу, чтобы в зависимости от введенного пользователем числа выводилась информация о нужном предмете из списка под введенным номером.

Реально ли вообще сделать нечто подобное? Знаний пока что, по всей видимости, недостаточно

print('Список товаров торговца', name_trader)
print('---')
count = 1
sleep(1)
for product in traders[name_trader]:
    print(count, '-', product+'.','Цена:', traders[name_trader][product])
    count+=1
    sleep(0.5)
print('---')
print('Вас что-нибудь заинтересовало? (да/нет)')
interes = input()
if interes == 'да':
    tovar = int(input('Введите позицию интересующего вас товара.'))

Ответы

▲ 1

Создайте дополнительный словарь в начале:

x = {}

В вашем цикле for добавляйте в этот словарь ключ и значение:

x[count] = product

После ввода числа пользователем возьмите значение из вашего словаря:

print(x[tovar])
▲ 0
traders ={'tr1':{'t1': 1, 't2': 2, 't3': 3}}
name_trader ='tr1'
print('Список товаров торговца', name_trader)
print('---')
qq = list(traders[name_trader].items())

for count, (product, price) in enumerate(qq, 1):
    print(f"{count} - {product}. Цена: {price}")
print('---')
print('Вас что-нибудь заинтересовало? (д/н)')
interes = input()
if interes == 'д':
    tovar = int(input('Введите позицию интересующего вас товара.'))-1
    product, price = qq[tovar]
    print(f"{product}. 'Цена:' {price}")