列表清单,如何使用每个列表中的特定数字进行计算?

时间:2015-10-18 21:30:44

标签: python list csv

我有一个功能:

def readCSVfile(str1):

此功能采用用户选择并读取的CSV文件。 每个文件都包含一个列表,如下所示:

[[1, 1, 2.2, 1.3, 9.6], [1, 2, 2.1, 2.2, 7.6], [1, 3, 2.7, 1.5, 2.2], [2, 1, 3.0, 4.5, 1.5], [2, 2, 3.1, 3.1, 4.0], [2, 3, 2.5, 2.8, 3.0], [3, 1, 1.9, 1.8, 4.5], [3, 2, 1.1, 0.5, 2.3], [3, 3, 3.5, 2.0, 7.5], [4, 1, 2.9, 2.7, 3.2], [4, 2, 4.5, 4.8, 6.5], [4, 3, 1.2, 1.8, 2.7]]

现在,在用户选择了一个文件后,作业是让程序打印出我的程序制作的每个列表中的一些计算但是我被卡住了。 比方说,我想在每个列表中乘以第三个和第四个数字,我将如何指定?

尝试做类似

的事情
readCSVfile(str1)[2]

不要工作。 我疯狂地用Google搜索了

2 个答案:

答案 0 :(得分:0)

through map and a lambda as one way:

li = [[1, 1, 2.2, 1.3, 9.6], [1, 2, 2.1, 2.2, 7.6], [1, 3, 2.7, 1.5, 2.2], [2, 1, 3.0, 4.5, 1.5], [2, 2, 3.1, 3.1, 4.0], [2, 3, 2.5, 2.8, 3.0], [3, 1, 1.9, 1.8, 4.5], [3, 2, 1.1, 0.5, 2.3], [3, 3, 3.5, 2.0, 7.5], [4, 1, 2.9, 2.7, 3.2], [4, 2, 4.5, 4.8, 6.5], [4, 3, 1.2, 1.8, 2.7]]

for el in map(lambda x: [x[0], x[1], round(x[2] * x[3],2),x[4]],li):
    print(el)

[1, 1, 2.86, 9.6]
[1, 2, 4.62, 7.6]
[1, 3, 4.05, 2.2]
[2, 1, 13.5, 1.5]
[2, 2, 9.61, 4.0]
[2, 3, 7.0, 3.0]
[3, 1, 3.42, 4.5]
[3, 2, 0.55, 2.3]
[3, 3, 7.0, 7.5]
[4, 1, 7.83, 3.2]
[4, 2, 21.6, 6.5]
[4, 3, 2.16, 2.7]

答案 1 :(得分:0)

lst = [ [1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]

for x in range(len(lst)):
    print(lst[x][2] * lst[x][3])