При печати ключа и значения он печатает их ключ + значение столько раз, сколько у меня цифр в моем значении

Я изучаю программирование на Python 3, и у меня возникла проблема с формированием 2 для операторов внутри списка. Вот как я это сделал:

items = {
    "Iphone X": {"price": 1000, "stock":10},
    "Samsung S9": {"price": 800, "stock":10},
    "Huawei P20": {"price": 600, "stock":10},
    "HTC Vive": {"price": 400, "stock":10}
}
    test = ["{} - {}$".format(nume, pret) for nume in items.keys() for pret in items[nume]["price"]]
    print("\n".join(test))

Я не знаю, почему, когда я меняю тип items[nume]["price"] на str, он печатает ключ + значение, он печатает столько цифр, сколько у меня есть в моем значении.

Если я не изменю тип items[nume]["price], он сообщает мне TypeError: 'int' object is not iterable.

Что там делает этот ,?

DeepSpace 25.10.2018 21:13

@DeepSpace, я подумал, что мне нужно прописать 2 оператора for.

Sebastian 25.10.2018 21:15

Что такое items? Вы перебираете ключи, но ожидаете, что у него будет ключ price?

Patrick Haugh 25.10.2018 21:15

@PatrickHaugh Я добавил их в код, извините, я думал, что уже вставил их.

Sebastian 25.10.2018 21:27
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто используйте .items() для доступа как к ключам, так и к значениям вашего словаря.

d = {'hammer':'5', 'scewdriver':'2'}

test = ["{} - {}$".format(k, v) for k,v in d.items()]
print("\n".join(test))

Привет, @BernardL, спасибо, что нашли время ответить на мой вопрос, но, насколько я знаю, если я делаю словарь таким образом, я не смогу добавить запасы, как у меня сейчас.

Sebastian 25.10.2018 21:26

@SebastianNeamtu выберите его клавишей, ["{} - {}$".format(k, v['price']) for k,v in d.items()]

BernardL 25.10.2018 22:43

Другие вопросы по теме