Python 列表列表,如何使用每个列表中的特定数字进行计算?
我有一个功能:Python 列表列表,如何使用每个列表中的特定数字进行计算?,python,list,csv,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
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]
不要工作。
我疯狂地在谷歌上搜索事情是,目前我唯一需要处理的就是我的readCSVfile(str1)。我没有在代码中写出列表@ErikAngerfistNyström是列表中的子列表还是csv文件中的一行?正如函数所建议的,您似乎以字符串/缓冲区的形式读取了列表中的数据,可以说这不是一个有效的python列表,请尝试将其转换为python列表,然后重试。如果您只对子列表的每个倍数的结果感兴趣,只需使用list CONTRUSION.import ast ast.literal_eval(“[“A”、“B”、“C”、“D”]”)
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]
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])