列表可以接受用户输入作为值吗?

时间:2014-06-11 04:29:27

标签: python list dictionary operators user-input

如果Weights是用户输入,我最好如何创建以下输出:

biz = # of businesses

Tier  Weights   Price  Businesses  Revenue
Tier1   WT1     XXX    WT1*biz     XXX(WT1*biz)
Tier2   WT2     YYY    WT2*biz     YYY(WT2*biz)
Tier3   WT3     ZZZ    WT3*biz     ZZZ(WT3*biz)

请按照此问题中的示例提供最佳服务:Python List as variable name

虽然我很欣赏这些代码,但我只是提供了一些指导和一些知识,因此我可以成为更好的开发人员。

TIA

我最终做了什么:

Tier0 = ['Tier', 'Weights', 'Price', 'Number of Businesses', 'Revenue'] 
Tier1 = ['Tier 1', 180,]
Tier2 = ['Tier2', 300]
Tier3 = ['Tier3', 450]
Tier4 = ['Tier4', 600]
Tier5 = ['Tier5', 750]

data = []
data.append(Tier0)
data.append(Tier1)
data.append(Tier2)
data.append(Tier3)
data.append(Tier4)
data.append(Tier5)    
data

for Tier1 in data[1:]: #what does data [1:] refer to?
    Tier1.insert(1, float(input('Enter the weighted value of Tiers 1-5 as a decimal: ')))
    Tier1.insert(3, Tier1[1] * NationalBusiness)#calculates the number of businesses
    Tier1.insert(4, Tier1[2] * Tier1[1] * NationalBusiness)#calculates the revenue

2 个答案:

答案 0 :(得分:0)

创建一个接收用户输入的循环,将其存储在列表中(如果不为空)打破循环:

weights = []
while True:
    weight = float(raw_input("Insert weight: "))
    if not weight:
        break
    weights.append(weight)
print weights

然后,产生所需的输出

答案 1 :(得分:0)

假设您有一个列表,[10, 30, 40],并且您希望从用户那里获取输入并将其插入第二个索引。这就是你要做的:

a_list = [10, 30, 40]
a_list.insert(1, int(raw_input('Enter the value for weight')))

无论用户输入什么都成为第二个元素。如果用户输入20a_list现在变为:

[10, 20, 30, 40]

假设您将数据作为列表列表:

data = [
        ['Tier', 'Weights', 'Price', 'Businesses', 'Revenue'],
        ['Tier1', 30],
        ['Tier2', 30],
        ['Tier3', 30]
    ]

然后这段代码,将用户输入作为每个子列表的第二个元素插入:

for a_list in data[1:]:
    a_list.insert(1, int(raw_input('Enter the value for weight')))
    a_list.append(a_list[1] * biz)
    a_list.append(a_list[2] * a_list[1] * biz)