如何将值放入列表?

时间:2014-11-16 14:08:09

标签: python-2.7

我是python的新手。我有一个列表如下。

1    [2,3,4]    10    
2    [3,4]      20    
3    [4]        30   

然后,我想让元素上面的第二列成为下面的第一列,并计算下面第二列的最后一列除以第二列中的总元素,如下所示。

2    10/3    
3    10/3    
4    10/3    
3    20/2    
4    20/2      
4    30/1  

1 个答案:

答案 0 :(得分:1)

首先,您需要将数据重新格式化为更有用的格式。我将包括一些额外的步骤,以便它们如何一起工作更有意义。

input_list = [] ### initializes the list you'll be using (otherwise you have no list to add to)

row_1 = [1,[2,3,4], 10]
row_2 = [2,[3,4], 20]
row_3 = [3,[4], 30]

input_list.append(row_1)
input_list.append(row_2)
input_list.append(row_3)

这将导致您的所有数据分配到input_list,就像这样,

input_list = [[1,[2,3,4], 10], [2,[3,4], 20], [3,[4], 30]]

现在可用于迭代以获得您正在寻找的答案。您当然可以跳过将每一行定义为自己的变量,然后通过在一个步骤中定义input_list所有数据来将每个行添加到input_list。但为了便于阅读和理解正在发生的一切,我使用了上面的分步方法。现在通过创建一个以input_list作为参数的函数,您可以创建两个简单的循环(一个在另一个中)来完成您的需要,

def operation(input):
    output = []  ### initializes your final output list variable
    for row in input:
        for number in row[1]:
            column1 = row[0]
            column2 = number
            column3 = row[2]/len(row[1])
            output.append([column1, column2, column3])
    return output

然后要实际创建所需的输出,请使用operation作为参数调用input_list函数,

output_list = operation(input_list)

其中output_list是一个新定义的变量,将分配给operation函数返回的任何内容(输出)。

然后以可读格式查看列表,也可以运行它,

for row in output_list:
    print row

这应该可以满足您的需求!