我非常擅长编程并尝试将列表和元组组合到一个新列表中:
我非常感谢一个简单的解决方案,并简要解释为什么我的尝试只返回布料的值(我输入范围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()
答案 0 :(得分:2)
问题在于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]