在Python中附加二维列表

时间:2017-05-01 15:37:10

标签: python

首先发布在这里,所以请放轻松。

我的python类已暂时停留在这个程序上一段时间了,我不确定我需要做什么才能继续。

我在运行create_commission()函数时遇到错误。我很确定这是因为我不应该使用count[]但不确定我应该使用什么。我将离开我的教授伪代码,它显示以下内容:

create_commission(s_list)
create c_list
for every person list in s_list
    create s_comm list
    s_comm[0] = person[0]
    s_comm[1] = person[1]
    s_comm[2] = find_commission(person[2])
    append s_comm to c_list
return c_list

我不确定我应该在person[]点放置什么。

任何和所有帮助将不胜感激!

SENTINEL = 'XX'

def main():
    sales_force = []
    commission = []
    sales_force = create_sales_force()
    commission = create_commission(sales_force)


def create_sales_force():
    s_force = []
    last_name = input("Employee's Last Name (xx to quit): ")
    while last_name.upper() != SENTINEL:
        first_name = input("Employee's First Name: ")
        valid_sales_amount = False
        while not valid_sales_amount:
            try:
                sales_amount = float(input("Sales Amount: "))
            except ValueError:
                print("-- INVALID SALES AMOUNT --")
            else:
                if 0 <= sales_amount <= 50000:
                    valid_sales_amount = True
                else:
                    print("**INVALID SALES AMOUNT**")
                    print("Number must be between 0 and 50,000")

        sales_person_list = [last_name, first_name, sales_amount]
        s_force.append(sales_person_list)

        last_name = input("Employee's Last Name (xx to quit): ")

    return s_force

def create_commission(s_list):
    c_list = []
    for count in range(0, len(s_list)):
        s_comm = []
        s_comm[0] = count[0]
        s_comm[1] = count[1]
        s_comm[2] = find_commission(count[2])
        c_list.append(s_comm)

    return c_list



def find_commission(sales_amt):
    if sales_amt <= 5000:
        return sales_amt * .08
    elif 5000 < sales_amt <= 10000:
        return sales_amt * .11
    elif 10000 < sales_amt <= 18000:
        return sales_amt * .14
    elif 18000 < sales_amt <= 50000:
        return sales_amt * .18


main()

1 个答案:

答案 0 :(得分:0)

变量countint,您无法为int编制索引。 我认为您尝试做的是为每位员工创建一个列表c_list的条目。 您可以做的是使用count作为列表s_list的索引,例如:

def create_commission(s_list):
    c_list = []
    for count in range(0, len(s_list)):
        s_comm = []
        s_comm.append(s_list[count][0])
        s_comm.append(s_list[count][1])
        s_comm.append(find_commission(s_list[count][2]))
        c_list.append(s_comm)

    return c_list

请注意,s_comm最初为空,因此您必须append该组件的新组件,并且您无法直接索引它们(它们在append新数据之前不存在)

此外,无需使用函数rangelen,您可以使用

直接迭代列表元素
def create_commission(s_list):
    c_list = []
    for e in s_list:
        s_comm = []
        s_comm.append(e[0])
        s_comm.append(e[1])
        s_comm.append(e[2])
        c_list.append(s_comm)

return c_list