对文件中所有奇数行求和的 Pythonic 方法

2024-01-29

我正在学习 Python,以便参加研究生院的编程分班测试,这实际上是我为了感受它而编写的第一个小脚本。我的背景主要是C#和PHP,但是我在测试中不能使用任何一种语言。

我的测试脚本读取以下文本文件(test_file1.txt)。偶数行包含样本大小,奇数行包含样本中每个测试的“结果”。 EOF 标记为 0。我想读入文件,输出样本大小,并对每个测试的结果求和。您将如何使用 Python 执行此任务?我觉得我试图强迫 python 像 PHP 或 C# 一样,从我的研究来看,我猜想有一些非常“Python”的方法来做这些事情。

测试文件1.txt:

3
13 15 18
5 
19 52 87 55 1
4
11 8 63 4
2
99 3
0

我的简单脚本:

file = open("test_file1.txt", "r")

i=0
for line in file:
    if i % 2 == 0:
        #num is even
        if line == '0':
            #EOF
            print 'End of experiment'   
    else:
        #num is odd
        numList = line.split( )
        numList = [int(x) for x in numList]
        print 'Sample size: ' + str(len(numList)) + ' Results: ' + str(sum(numList))
    i += 1

file.close()

我的结果:

Sample size: 3 Results: 46
Sample size: 5 Results: 214
Sample size: 4 Results: 86
Sample size: 2 Results: 102
End of experiment

Thanks!


使用文件作为迭代器,然后使用iterators.islice() http://docs.python.org/2/library/itertools.html#itertools.islice获取每隔一行:

from itertools import islice

with open("test_file1.txt", "r") as f:
   for line in islice(f, 1, None, 2):
       nums = [int(n) for n in line.split()]
       print 'Sample size: {}  Results: {}'.format(len(nums), sum(nums))

islice(f, 1, None, 2)跳过第一行(start=1),然后迭代所有行 (stop=None) 每隔一行返回一次 (step=2).

这将适用于您输入的任何文件大小;它不需要比内部迭代器缓冲区所需的更多内存。

测试文件的输出:

Sample size: 3  Results: 46
Sample size: 5  Results: 214
Sample size: 4  Results: 86
Sample size: 2  Results: 102
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对文件中所有奇数行求和的 Pythonic 方法 的相关文章

  • django_openid_auth TypeError openid.yadis.manager.YadisServiceManager 对象不是 JSON 可序列化

    I used django openid auth在我的项目上 一段时间以来它运行得很好 但今天 我测试了该应用程序并遇到了这个异常 Environment Request Method GET Request URL http local
  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • python future 和元组解包

    实现像使用 future 进行元组解包这样的事情的优雅 惯用的方法是什么 我有这样的代码 a b c f x y g a b z h y c 我想将其转换为使用期货 理想情况下我想写一些类似的东西 a b c ex submit f x y
  • 如何正确地将 MIDI 刻度转换为毫秒?

    我正在尝试将 MIDI 刻度 增量时间转换为毫秒 并且已经找到了一些有用的资源 MIDI Delta 时间刻度到秒 http www lastrayofhope co uk 2009 12 23 midi delta time ticks
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • 从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

    我已经查看了很多问题 但仍然无法完全弄清楚 我正在使用 PyQt 并且希望能够运行ffmpeg i file mp4 file avi并获取流式输出 以便我可以创建进度条 我看过这些问题 ffmpeg可以显示进度条吗 https stack
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • 如何为每个屏幕添加自己的 .py 和 .kv 文件?

    我想为每个屏幕都有一个单独的 py 和 kv 文件 应通过 main py main kv 中的 ScreenManager 选择屏幕 设计应从文件 screen X kv 加载 类等应从文件 screen X py 加载 Screens
  • 无法在前端使用 JavaScript Fetch API 将文件上传到 FastAPI 后端

    我正在尝试弄清楚如何将图像发送到我的 API 并验证生成的token那是在header的请求 到目前为止 这就是我所处的位置 app post endreProfilbilde async def endreProfilbilde requ
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在

随机推荐

  • Android 中的意图过滤器是什么?

    在我的 Android 应用程序中 我想从初始活动 A 开始活动 B 我为这两个项目创建了课程 但是 当使用以下代码启动 B 时 我收到运行时错误 application has stopped unexpectedly try again
  • 集合迭代器中的不完整类型

    我自己编写了一个自定义的 STL 样式容器 它在内部使用 AVL 树来组织数据 现在 在一个项目中 我希望有一个迭代器作为成员 class vertex avl tree
  • 如何在 JavaFX 8 警报中指定按钮的特定顺序

    我需要要求用户确认执行某项操作 确认对话框的按钮组是 是 否 和 取消 我的代码如下 private ButtonType askYesNoCancel String question Alert alert new Alert Alert
  • Linq Join With Include 语句

    IQueryable
  • 软键盘推送布局

    我一直在尝试许多解决方案来防止软键盘出现时推动我的布局 然而 所有的解决方案都不起作用 简而言之 我希望布局中的所有内容 按钮 imageViews 背景 textViews textEdits 在显示软键盘时保持在原位 我不关心它会涵盖什
  • 为什么 Flutter Web 中的按钮没有边距?

    我有以下代码 Scaffold appBar AppBar title Text Test body Center child Column mainAxisAlignment MainAxisAlignment center childr
  • 使用嵌套数组合并两个字典

    我有 2 本词典 a I 1 2 II 1 2 III 1 2 b I 3 4 II 3 4 IV 3 4 我怎样才能合并它们以获得以下结果 c merge dicts a b 其中 c 是 I 1 2 3 4 II 1 2 3 4 III
  • 抽象和概括有什么区别?

    我理解抽象就是把更具体的东西变得更抽象 该东西可能是数据结构或过程 例如 数据抽象 矩形是正方形的抽象 它集中于正方形有两对相对边的事实 而忽略了正方形的相邻边相等的事实 程序抽象 高阶函数map是一个过程的抽象 该过程对值列表执行某些操作
  • 在 Glass GDK 沉浸式应用程序中打开活动时如何使屏幕变亮?

    我有一个 GDK 沉浸式应用程序 其中启动器Activity获得一个SCREEN DIM WAKE LOCK WakeLock 该应用程序还有一个服务 它将接收聊天消息并启动Intent for an Activity显示每一个 每当消息A
  • HTML5 输入类型=日期:我可以使用 JavaScript 打开/关闭日期选择器吗?

    我正在尝试自定义 HTML5 输入 type date 元素 我想添加一个单独的按钮 单击该按钮将切换日期选择器下拉列表的可见性 我找不到任何这方面的信息 非常感谢任何帮助 这是我使用 CSS 制作的解决方案 webkit box sizi
  • 如何检查某个字是否被 PHP 保留?

    有没有一些函数可以检查一个单词是否是reserved http www php net manual en reserved keywords php在 PHP 中还是我可以自己使用它 我可以手动检查它 只需使用它并查看错误或警告 但我需要
  • 从 XSD 生成 Go 结构

    最近打算用Go做一个项目 我的问题是 给定一个 XSD 文件 如何在 Go 中自动生成结构来表示 XML 元素 它类似于使用 xjc 从 XSD 生成 java 类 那么Go中有没有任何工具或包可以做到这一点呢 提前致谢 看起来它可能需要一
  • 从外部连接到 docker 容器中的 Postgresql

    我在 Docker 容器的服务器上有 Postgresql 如何从外部 即我的本地计算机 连接到它 我应该应用什么设置来允许这样做 您可以通过这种方式运行 Postgres 映射端口 docker run name some postgre
  • 将 java 系统属性传递给 ant 测试

    我让 ant 使用以下代码执行 jar
  • 轮播引导程序中的拉伸图像

    我正在使用 Bootstrap 4 那里有一个带有图片的轮播 图像一直显示拉伸 不知道出了什么问题 carousel margin bottom 4rem position relative carousel caption bottom
  • 在非常大的树上执行 DFS 的最佳方法是什么?

    情况是这样的 应用世界由数十万个状态组成 给定一个状态 我可以计算出一组 3 或 4 个其他可到达的状态 一个简单的递归可以构建一个状态树 它会变得非常大且非常快 我需要从根状态到该树中的特定深度执行 DFS 以搜索包含 最小 状态的子树
  • Dalvik 和 Android 工具链可以带来哪些优化?

    我正在开发一个高性能 Android 应用程序 一款游戏 虽然我首先尝试编写代码以提高可读性 但我喜欢在脑海中保留一幅幕后发生的事情的图片 通过 C 我对编译器能为我做什么和不能做什么有了相当好的直觉 我正在尝试为 Java Android
  • 使用 std::vector 调用 std::lock ()

    我想将以下代码替换为std lock for mutex m mutexes m gt lock 无论如何我可以调用std lock 在那些给定的互斥体上std vector
  • 如何在 ActiveSupport::TestCase 中存根方法

    In RSpec我可以像这样存根方法 allow company to receive foo 300 我怎样才能存根一个方法ActiveSupport TestCase 我有一个这样的测试 class CompanyTest lt Act
  • 对文件中所有奇数行求和的 Pythonic 方法

    我正在学习 Python 以便参加研究生院的编程分班测试 这实际上是我为了感受它而编写的第一个小脚本 我的背景主要是C 和PHP 但是我在测试中不能使用任何一种语言 我的测试脚本读取以下文本文件 test file1 txt 偶数行包含样本