python - 文件中组合元素的总和

标签 python list text

我是 Python 的新手,一直在为我的程序构建逻辑。我想学习,但我觉得我需要一些外部帮助。也许你们可以帮助我。这是家庭作业/项目。

列表 (SalesData.txt) 如下所示:

  • 姓名 1
  • 23
  • 34
  • 454
  • 姓名 2
  • 344
  • 34
  • 45

并且至少有 5 个不同的名称。但是对于示例,这就可以了。

基本上,我需要计算出所有数字的总和,然后是每个名字的总和。

输出::在这种情况下(使用示例)

  1. 总计 = 934(所有数字的总和)
  2. 姓名 1 总计 = 511(姓名 1 的数字总和)
  3. 姓名 2 总数 = 423(姓名 2 的数字总和)

我知道如何获取仅包含数字的文件的总和,但是当涉及到混合时,我感到非常困惑。另外,我如何指定获取每个 "name" 的总数。我应该使用 .isdigit().isalpha() 来告诉列表什么时候求和什么时候不求和吗?

任何建议都会对我有帮助!谢谢!

更新 到目前为止,这是我的代码:

data = []
data = open("SalesData.txt").read().split()
    for i in data:
        s = sum([ float(i) ])
print "Sum=" , s
print "Avg="  , s/len(data)

这仅在文件全部为数字时有效,这很容易对内容求和。但请记住,我每 12 个数字处理一个字符串。我正在尝试弄清楚如何仅在找到带有 float 的行时才进行求和。

更新 #2

我仍然需要一些指导!我开始以我自己的方式结束一切,但我发现了一些非常基本的问题(我确定)

data = []
data = open("SalesData.txt").read().split()
    for i in data:
        if str(i):
            print 'This one is Letter'
        elif float(i):
            s = sum([ float(i) ])
print "Sum=" , s
print "Avg="  , s/len(data)

我知道这个例子行不通,我想知道为什么。我正在尝试分析列表。 如果'i'是一个字符串,程序将(在这个例子中打印'Letter')如果它不是一个字符串,它将计算数字的常规总和。我当时正在处理这个程序,我希望能够使用混合提供的列表获得数字的总和,但我停留在将字符串分析为字符串并将 float 分析为 float 的方面。

最佳答案

请注意,如果您有一个非整数或负值(例如 342.2 或 -342),.isdigit() 将返回 False,因此这可能不是一个良好的使用机制。

正如 Kreativitea 所指出的,int() 可用于从数字(特别是整数)中辨别单词,但考虑到 float() 可以在更一般的情况下工作数字可能是整数或 float 的情况。

关于python - 文件中组合元素的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662719/

相关文章:

python - 计算嵌套列表python中的数据

python - pandas 数据框中列标题的动态替换

php - 限制php中的文本长度并提供 'Read more'链接

python - 在 Python 中使用 ElementTree 从 XML 中提取数据

python - 在 Python 中验证字符串值

python - 是否可以在 python 测试用例中修补函数的函数?

javascript - 如何通过 JavaScript 显示错误消息?

python - 在路径中使用变量的目录中创建文件夹(Python 3.6)

php - 如何使用 PHP 列出 Google Cloud Storage 中存储桶中的所有文件?

javascript - 该对象的 key 以什么格式存储? %00*%00_数据