【问题标题】:Adding the amounts at the end of a list of arrays in Python3在 Python3 中的数组列表末尾添加金额
【发布时间】:2014-04-20 12:53:21
【问题描述】:

我有一个数组表,每个数组都包含日志,每个数组的最后一个索引都有一个美元金额 (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 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

我正计划遍历表,对数组进行切片以检索最后一块,将其添加到变量中,然后打印总数。

感谢您的帮助,我是新手,在这方面已经卡了一段时间了。

【问题讨论】:

  • 你为什么不按照你的计划?

标签: python arrays python-3.x


【解决方案1】:

如果您的美元金额始终以静态 3 位浮点数表示,那么请继续您的计划使用:

string.split()

以空格作为分隔符和/或:

dollars = float(string[-3:])

获取美元的浮动金额:)

希望对您有所帮助! 干杯, 亚历克斯

【讨论】:

    【解决方案2】:

    假设这些行在一个文本文件中:

    total=0.0
    for line in open('filename'):
        total+=decimal(line.strip().split()[-1])
    
    print total
    

    【讨论】:

    • sum 已经是一个函数。所以你可以做sum( [float(l.split()[-1]) for l in open('data.txt')] )
    • 更正了答案。
    【解决方案3】:

    假设数据是一个列表列表:

    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])
    

    如果数据在一个文件中,你可以在计算total之前读取文件并构造data,可以这样做:

    import csv
    data = []
    with open('datafile', 'rb') as csvfile:
        csv_reader = csv.reader(csvfile, delimiter=' ')
        for row in csv_reader:
            data.append(row)
    

    【讨论】:

    • 用花车赚钱是个坏主意。考虑更改您的答案以使用decimal
    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2023-03-21
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多