【问题标题】:I need to get all keys and values inside dict that to be inside the list, but only return last key and values我需要在 dict 中获取列表中的所有键和值,但只返回最后一个键和值
【发布时间】:2019-07-12 12:43:09
【问题描述】:

我需要使用 python dict 创建产品价格表。我将从用户那里收到的键和值。创建此价目表后,我需要获取包含最小值并为我的用户显示的密钥。立即查看我的代码。

我创建了一个列表以将我的 dicts 放入其中,并尝试使用 for 循环,但只显示最后一个键和值。

lista = []
for i in range(3):
  mercadoria = input("Informe o nome de um produto: ")
  preco = float(input("Informe o preço do produto: "))
  produto = {mercadoria: preco}
  lista.append(produto)

for i in lista:
  for k,v in produto.items():
    print(f"{k}:{v}")

我会显示如下值: 一个:10 乙:5 c: 20

您应该购买产品 b。

【问题讨论】:

    标签: dictionary python-3.6


    【解决方案1】:

    您不需要使用list。只需使用dict。 将items()for 循环一起使用,您做得很好。

    produto = {}
    for i in range(3):
      mercadoria = input("Informe o nome de um produto: ")
      preco = float(input("Informe o preço do produto: "))
      produto[mercadoria] = preco
    
    for k,v in produto.items():
      print(k, v)
    

    结果是:

    Informe o nome de um produto: 1
    Informe o preço do produto: 1.1
    Informe o nome de um produto: 2
    Informe o preço do produto: 2.2
    Informe o nome de um produto: 3
    Informe o preço do produto: 3.3
    2 2.2
    3 3.3
    1 1.1
    

    【讨论】:

    • 感谢@yaho cho,您的解决方案帮助了我!我的新代码如下所示:from operator import itemgetter produto = {} for i in range(3): mercadoria = input("Informe o nome de um produto: ") preco = float(input("Informe o preço do produto: ")) produto[mercadoria] = preco for k,v in produto.items(): print(f"{k}:{v}") dict_ordered = sorted(produto.items(), key=itemgetter(1)) print(f"Você deve comprar o produto {dict_ordered[0][0]} no valor de R${dict_ordered[0][1]}")
    • @EricGomes 要按顺序打印出来吗?
    • 不,我的目标是在 dict 上打印所有产品,并让我的用户购买价格最低的产品。
    • @EricGomes 对不起。你已经完成了代码。太好了!
    猜你喜欢
    • 2021-05-01
    • 2021-12-23
    • 1970-01-01
    • 2015-04-12
    • 2014-12-03
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多