如何从两端迭代序列?

2024-03-15

我想“从两端”(到(该部分的)中间,此处)迭代Python序列(的一部分)。
在 C/C++/Java 中,我可能会尝试

int start = 2, beyond = 7;
for (int forward = start, back = beyond ; forward <= --back ; forward++)
    printf("%d %d\n", forward, back);

我似乎无法决定我最不喜欢以下哪种变体:

seq = tuple(chr(c) for c in range(ord('a'), ord('z')+1))
start, beyond = 2, 7

print("subtract")
for forward in range(start, beyond):
    back = start + beyond - 1 - forward
    if (back < forward):
        break
    print(seq[forward], seq[back])
#    if (back <= forward): XXX ERROR, as YvesgereY pointed out
#        break
print("reversed")
for forward, back in zip(range(start, beyond),
                         reversed(range(start, beyond))):
    if (back < forward):
        break
    print(seq[forward], seq[back])
print("step -1")
for forward, back in zip(range(start, beyond), range(beyond-1, start-1, -1)):
    if (back < forward):
        break
    print(seq[forward], seq[back])
print("naked code")
forward, back = start, beyond-1 # thanks again, YvesgereY
while (forward <= back):
    print(seq[forward], seq[back])
    forward += 1
    back -= 1

有没有一种令人愉快/理智/惯用的方法来处理这个问题?


Why not zip与自身相反的列表?

mid = (len(lst) + 1) // 2   
for x, y in zip(lst[:mid], lst[::-1]):
     print((x, y))

(1, 5)
(2, 4)
(3, 3)

zip自动处理不同长度的列表,只需确保正确设置中点(这取决于列表大小是否均匀)。

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

如何从两端迭代序列? 的相关文章

  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 使用来自同一 URL 的多个 POST 数据进行抓取

    我已经创建了一个蜘蛛 它可以收集具有匹配电话号码的公司名称列表 然后将其保存到 CSV 文件中 然后我想使用 CSV 文件中的电话号码作为 POST 数据从另一个网站抓取数据 我希望它循环访问相同的起始 URL 但只是抓取每个电话号码生成的
  • 剔除映射 JSON 读取时出错

    我正在 Web 应用程序上使用淘汰赛 该应用程序使用 foreach 显示数据 包括所有需要的库 我收到以下错误 Error Unable to parse bindings Message ReferenceError d is not
  • jquery 中两个类之间的淡入淡出

    我希望能够淡出这门课 h2 class care home fees a title Care Home Fees href Text a h2 并淡入此 h2 class care home fees over a title Care
  • Marshal 大小常量数组

    我试图在结构内有一个堆栈分配的数组 我指的是指针 但我希望在没有额外代码的情况下完成分配 因为我在编写代码时知道大小 我不想做一堆new当我创建我的结构时 如果我什至可以做到不unsafe完美的背景 我尝试了一些东西 但效果不佳 我是 C
  • “Quartz.Impl.StdSchedulerFactory”的类型初始值设定项引发异常

    我正在按照以下说明进行操作Quartz Net 的教程 http quartznet sourceforge net tutorial index html非常接近 但我在尝试调试我的项目时遇到启动错误 The type initializ
  • 在 NHibernate 中如何将 Replace 添加到 Restrictions.Eq?

    我想添加一个 Restrictions Eq 并用 TSQL 替换列名 我该怎么做呢 string location Columbus OH var requestQuery Session CreateCriteria
  • 命名空间动态加载的 javascript 文件的内容

    是否可以为动态插入的 JavaScript 文件命名空间 我知道我可以通过创建一个动态包含 JavaScript 文件script标记并将其插入到 DOM 中 但是这个包含的文件可以命名空间吗 所以 如果该文件有一个名为bar 我想通过命名
  • 有没有办法暂停所有 Threading.Timer 计时器?

    我是 C 新手 正在开发一个需要多个计时器的程序 我想知道当程序运行 CPU 密集型代码时是否有办法同时暂停该程序中的所有计时器 目前 当前启用的计时器尝试赶上密集操作期间引发的所有计时器事件 我认为您可以创建这些计时器的列表 当您激活它们
  • 在 Java 中运行 CUDA 代码的最简单方法是什么?

    我有一些用 C 语言编写的 CUDA 代码 它似乎工作正常 它是普通的旧 C 而不是 C 我正在运行一个 Hadoop 集群 并且想要整合我的代码 因此理想情况下我希望在 Java 中运行它 长话短说 系统太复杂 目前 C 程序解析日志文件
  • 在android中以不同模式打开手电筒

    下面的代码可以在不支持手电筒的 Android 设备 例如摩托罗拉剃须刀 上运行吗 请哪位好心人测试一下是否有这样的手机并请告诉我 提前致谢 if isFlashOn if camera null params null return Li
  • ClientRect 神秘地比 WindowRect 小?

    我在 Visual Studio 中启动了一个新的 Windows 桌面 C 项目 窗口创建如下所示 HWND hWnd CreateWindowW szWindowClass szTitle WS OVERLAPPEDWINDOW CW
  • 如何将图表嵌入到幻灯片或苹果的主题演讲中?

    我正在学习如何用plotly 生成图表 我是生物化学研究生 我想将这些图表用于演示文稿 例如幻灯片 主题演讲 我想知道是否有人可以给我一个总体策略或教程链接 谢谢你 Plotly 有一个 MS Office 应用程序 允许嵌入 Window
  • Java中重新定义静态方法意味着什么?

    我一直在阅读 SCJP 学习指南中有关静力学的部分 其中提到了以下内容 静态方法不能被重写 但它们可以被重新定义 重新定义到底意味着什么 是否存在父级和子级中都存在具有相同签名的静态方法的情况 但它们是通过类名单独引用的 例如 class
  • 如何在 mongodb 的正则表达式 $match 中使用聚合中的字段?

    我的用例的一个非常简化的版本是查找以作者姓名开头的所有帖子 如下所示 gt db users find id ObjectId 5c4185be19da7e815cb18f59 name User1 id ObjectId 5c4185be
  • Javascript防止可拖动div位于父div之外

    我有可拖动的div 我希望使用 javascript 将这个可拖动的 div 限制在父级中 我知道如何使用 jquery UI 可拖动插件来防止可拖动 div 但我不确定如何使用本机 javascript 限制可拖动 请在下面找到我的代码
  • 在批处理文件中使用方框图 Unicode 字符

    我正在制作一个使用这些字符的批处理文件 它不起作用 它只是自行终止 我见过人们使用这样的字符 它不是字符 但它变成了字符 有人可以给我这些字符的列表 显示上面字母的类型以及它变成什么 如果要编写使用这些字符的控制台批处理文件 则需要一个编辑
  • 按名称而不是在 cx_Oracle 中的位置获取列值

    Using cx Oracle 我正在从 Oracle 数据库中选择数据 curs cxn cursor result curs execute SELECT FirstName LastName FROM Person 有没有办法只返回名
  • Joda-Time,没有日期的时间

    我想要一个只存储时间而不存储日期或日期的类 Joda Time 有这方面的课程吗 或者我是否必须使用日期时间并仅将时间部分转换为字符串 然后使用该部分 有的是LocalTime http joda time sourceforge net
  • 根据选择下拉列表 javascript 中的 ID 显示隐藏元素

    我知道这可能是最常被问到的问题 但我已经搜索了网络并尝试了几个例子 但没有一个起作用 这是我的问题 首先我无法控制TR TD结构 无法使用DIV 我需要能够根据选择的下拉菜单值显示某些 TD 我有 4 个不同的 id 我使用 to to f
  • 如何从两端迭代序列?

    我想 从两端 到 该部分的 中间 此处 迭代Python序列 的一部分 在 C C Java 中 我可能会尝试 int start 2 beyond 7 for int forward start back beyond forward l