在Python3中的数组列表末尾添加数量
我有一个数组表,每个数组都包含日志,每个数组上的最后一个索引都有一个美元金额(0.01)。我需要对数组进行切片,然后对每个数组进行循环,将数量相加,输出一个总数 我一点也不知道怎么做 当我打印日志时,这是它输出以供参考的内容在Python3中的数组列表末尾添加数量,python,arrays,python-3.x,Python,Arrays,Python 3.x,我有一个数组表,每个数组都包含日志,每个数组上的最后一个索引都有一个美元金额(0.01)。我需要对数组进行切片,然后对每个数组进行循环,将数量相加,输出一个总数 我一点也不知道怎么做 当我打印日志时,这是它输出以供参考的内容 @ 2014 2 14 00:03:01 Matt "login" 0.01 @ 2014 2 14 02:06:12 Mary "login" 0.01 @ 2014 2 14 07:12:05 Mary "cd ~/cs150/projects" 0.01 @ 2014
@ 2014 2 14 00:03:01 Matt "login" 0.01
@ 2014 2 14 02:06:12 Mary "login" 0.01
@ 2014 2 14 07:12:05 Mary "cd ~/cs150/projects" 0.01
@ 2014 2 13 12:33:52 Boris "firefox&" 0.13
@ 2014 2 14 12:33:52 Boris "load http://yahoo.com" 0.01
@ 2014 2 15 03:42:27 Natasha "exit" 0.00
我计划在表中循环,切片数组以检索最后一个片段,将其添加到变量中,然后打印总数
谢谢你的帮助,我是新来的,已经在这上面呆了一段时间了 假设行位于文本文件中:
total=0.0
for line in open('filename'):
total+=decimal(line.strip().split()[-1])
print total
如果您认为美元金额始终表示为静态3位数浮动,则只需使用以下方法继续您的计划:
string.split()
要使用空格作为分隔符拆分字符串和/或:
dollars = float(string[-3:])
要获取美元的浮动金额:)
希望有帮助!
干杯
Alex假设数据是列表列表,如下所示:
data = [['@', '2014', '2', '14', '00:03:01', 'Matt', '"login"', '0.01'],
['@', '2014', '2', '14', '02:06:12', 'Mary', '"login"', '0.01'],
['@', '2014', '2', '14', '07:12:05', 'Mary', '"cd ~/cs150/projects"', '0.01'],
['@', '2014', '2', '13', '12:33:52', 'Boris', '"firefox&"', '0.13'],
['@', '2014', '2', '14', '12:33:52', 'Boris', '"load http://yahoo.com"', '0.01'],
['@', '2014', '2', '15', '03:42:27', 'Natasha', '"exit"', '0.00']]
您可以通过以下方式获得总数:
total = sum([Decimal(item[7]) for item in data])
如果数据在一个文件中,您可以读取该文件并在计算<代码>总计<代码>之前如上所述构造<代码>数据,具体操作如下:
import csv
data = []
with open('datafile', 'rb') as csvfile:
csv_reader = csv.reader(csvfile, delimiter=' ')
for row in csv_reader:
data.append(row)
你为什么不按计划做呢?
sum
已经是一个函数了。所以你可以在open('data.txt')中对l进行sum([float(l.split()[-1]))
更正了答案。用float来赚钱是个坏主意。考虑改变你的答案,使用<代码>十进制< /代码>。