首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将元组和列表合并为列表。

将元组和列表合并为列表。
EN

Stack Overflow用户
提问于 2017-03-05 09:36:23
回答 1查看 79关注 0票数 0

我对编程非常陌生,我试图将列表和元组组合成一个新列表:

  • 商品是商品的一组。
  • 每一种商品都有相应的价格,随机生成并保存在清单价格中。
  • 我想要一份名为“报盘”的清单,为每一种商品分配相应的价格价值。

我将非常感谢一个简单的解决方案,并简要解释为什么我的尝试只返回一个值的布(我输入0:5,但它似乎只是返回元素4,布及其价格)。

代码语言:javascript
复制
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() 
EN

回答 1

Stack Overflow用户

发布于 2017-03-05 09:58:43

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

代码语言:javascript
复制
for n in range(len(goods)):
    ...

或者,您可以使用zip同时迭代两个列表:

代码语言:javascript
复制
for offer in zip(goods,prices):
    print(offer)

这会以元组的形式产生输出:

代码语言:javascript
复制
('Silk', 276)
('Gems', 486)
...

但是可以通过list(offer)转换为列表。

代码语言:javascript
复制
['Silk', 188]
['Gems', 620]
['Wool', 2]
['Hide', 14]
['Cloth', 38]
['Iron', 130]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42606710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档