将元组结合在一起,并将其列表到名单中



我是编程的新手,并试图将列表结合起来并培养到新列表中:

  • 商品是商品的元组。
  • 每种商品的价格相应,以随机生成并保存在列表中价格
  • 我想要一个称为 guerm>的列表将相应的价格值分配给每个商品的货物

我非常感谢一个简单的解决方案,也是一个简短的解释,为什么我的尝试只能返回布的价值(我输入了范围0:5,但似乎只是返回元素4,布和它的价格)

import random
goods = ("Silk", "Gems", "Wool", "Hide", "Cloth", "Iron")
def set_prices ():
    price_s = random.randrange(180,300)
    price_g = random.randrange(250,800)
    price_w = random.randrange(1,5)
    price_h = random.randrange(5,18)
    price_c = random.randrange(20,50)
    price_i = random.randrange(50,150)
    prices = [price_s,price_g,price_w,price_h,price_c,price_i]
    for n in range (0,5):
        offer = [(goods[n],prices[n])] 
        print (offer)
set_prices() 

问题是range(0,5)仅产生0,1,2,3,4,因为5被排除在外。一个简单的解决方案是使用range(len(goods)),生产具有相同数量商品值的范围:

for n in range(len(goods)):
    ...

另外,您可以同时使用zip同时遍历这两个列表:

for offer in zip(goods,prices):
    print(offer)

这将产生输出作为元组:

('Silk', 276)
('Gems', 486)
...

,但可以通过list(offer)转换为列表:

['Silk', 188]
['Gems', 620]
['Wool', 2]
['Hide', 14]
['Cloth', 38]
['Iron', 130]

最新更新