为什么 returned() 不接受生成器?

2024-01-04

我正在努力写这样的东西:

list(reversed(list(el.iterancestors()))) + [1,2,3]

生成器很糟糕,因为我被迫将它们消耗到列表中。

有没有办法简化这个?我认为reversed()应该接受迭代器,我错了吗?


生成器不保证有最后一个项目,因此无法逆转。下面的输出会是什么?

from itertools import cycle

reversed(cycle('abc'))

还存在不小心吃掉所有记忆的风险:

from itertools import permutations
reversed(permutations('abcdefghijklmnopqrstuvwxyz', 10)) # 19,275,223,968,000 tuples

请注意,这一点reversed()记忆效率高。对于序列,因此具有索引的对象(列表、字符串、元组、范围),reversed()生成一个使用内部索引的迭代器,该索引从len(inputobject) - 1,并且进展到0当你迭代时。它永远不必以这种方式创建输入序列的副本,但该技巧只能对已经具有长度并支持随机访问的内容起作用。

For 你的情况我不会用reversed() anyway。您想要一个列表作为输出,而不是生成器,因此请使用切片来反转列表:

list(el.iterancestors())[::-1] + [1, 2, 3]

内存效率在这里不是问题,因为您正在构建一个新的列表对象。

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

为什么 returned() 不接受生成器? 的相关文章

  • Django 中的 Rpy2 错误 - 未为“”类型的对象定义转换“py2rpy”

    我以前从未使用过 R 并且正在尝试使用 rpy2 从 python 调用 R 函数 它可以在独立的 python 终端上运行 但不能在 Django 中运行 但rpy2似乎无法将python字符串转换为r对象 我正在使用同事提供的自定义库
  • Python 子进程(ffmpeg)仅在我按 Ctrl-C 程序时启动?

    我正在尝试使用 Cygwin 和 Python 2 7 并行运行一些 ffmpeg 命令 这大概是我所拥有的 import subprocess processes set commands ffmpeg i input mp4 outpu
  • 将一维数组转换为下三角矩阵

    我想将一维数组转换为较低的零对角矩阵 同时保留所有数字 我知道numpy tril函数 但它用零替换了一些元素 我需要扩展矩阵以包含所有原始数字 例如 10 20 40 46 33 14 12 46 52 30 59 18 11 22 30
  • 在Python中以交互方式执行多行语句

    我是 Python 世界的新手 这是我用 Python 编写的第一个程序 我来自 R 世界 所以这对我来说有点不直观 当我执行时 In 15 import math import random random random math sqrt
  • Tensorflow 不分配完整的 GPU 内存

    Tensorflow 默认分配所有 GPU 内存 但我的新设置实际上只有 9588 MiB 11264 MiB 我预计大约 11 000MiB 就像我的旧设置一样 张量流信息在这里 from tensorflow python client
  • 如何使用 PyMongo 在重复键错误后继续插入

    如果我需要在 MongoDB 中插入尚不存在的文档 db stock update one document set document upsert True 将完成这项工作 如果我错了 请随时纠正我 但是 如果我有一个文档列表并想将它们全
  • PyArmor - 打包为一个可执行文件

    当我执行此命令时 您好 使用 PyArmor pyarmor pack main py 它将它打包到一个名为的文件夹中dist里面包含我的 exe 以及许多 Python 扩展文件 据我所知 PyArmor 使用 PyInstaller 来
  • 将列表中的 None 替换为最左边的非 none 值

    Given a None 1 2 3 None 4 None None I d like a None 1 2 3 3 4 4 4 目前我已经用以下方法强制它 def replaceNoneWithLeftmost val last Non
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • 在seaborn中对箱线图x轴进行排序

    我的数据框round data看起来像这样 error username task path 0 0 02 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w 39 png 1 0 10 n49vq
  • 如何使用 django-pyodbc (ubuntu 16.04) 配置数据库设置 Django-MSSQL?

    我是 Django 新手 目前正在尝试使用另一个数据库来保存我的模型 即MS SQL 我的数据库部署在docker容器中 903876e64b67 microsoft mssql server linux bin sh c opt mssq
  • 根据列索引重命名 Dataframe 列

    是否有内置函数可以按索引重命名 pandas 数据框 我以为我知道列标题的名称 但事实证明第二列中有一些十六进制字符 根据我接收数据的方式 我将来可能会在第 2 列中遇到这个问题 因此我无法将这些特定的十六进制字符硬编码到 datafram
  • Django Rest Framework POST 更新(如果存在或创建)

    我是 DRF 的新手 我阅读了 API 文档 也许这是显而易见的 但我找不到一个方便的方法来做到这一点 我有一个Answer与 a 具有一对一关系的对象Question 在前端 我曾经使用 POST 方法来创建发送到的答案api answe
  • 在Python中连续解析文件

    我正在编写一个脚本 该脚本使用 HTTP 流量行解析文件 并取出域 目前仅将它们打印到屏幕上 我正在使用 httpry 将流量连续写入文件 这是我用来删除域名的脚本 usr bin python import re input open r
  • 在 scipy 中创建新的发行版

    我试图根据我拥有的一些数据创建一个分布 然后从该分布中随机抽取 这是我所拥有的 from scipy import stats import numpy def getDistribution data kernel stats gauss
  • Python 导入非常慢 - Anaconda python 2.7

    我的 python import 语句变得非常慢 我使用 Anaconda 包在本地运行 python 2 7 导入模块后 我编写的代码运行得非常快 似乎只是导入需要很长时间 例如 我使用以下代码运行了一个 tester py 文件 imp
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • 沿轴 0 重复 scipy csr 稀疏矩阵

    我想重复 scipy csr 稀疏矩阵的行 但是当我尝试调用 numpy 的重复方法时 它只是将稀疏矩阵视为对象 并且只会将其作为 ndarray 中的对象重复 我浏览了文档 但找不到任何实用程序来重复 scipy csr 稀疏矩阵的行 我
  • 在python中对列表列表执行行总和和列总和

    我想用python计算矩阵的行和和列和 但是 由于信息安全要求 我无法使用任何外部库 因此 为了创建矩阵 我使用了列表列表 如下所示 matrix 0 for x in range 5 for y in range 5 for pos in

随机推荐

  • C++11:为什么 std::condition_variable 使用 std::unique_lock?

    我对角色有点困惑std unique lock当与std condition variable 据我了解文档 http en cppreference com w cpp thread unique lock std unique lock
  • 固定标题网格视图 ASP.NET

    我浏览了很多固定标题网格视图的示例 并使用 div 和 java 脚本尝试了一些选项 我没有从示例中工作 这里有什么我想念的吗 CSS gridViewHeader background color Navy color blue font
  • 在 Xcode 中构建 iOS 应用程序时出错:Sandbox: rsync.samba (13105) Deny(1) file-write-create,Flutter 无法写入文件

    在 Xcode 上构建 iOS 应用程序时 我遇到了这 2 个错误 我尝试在 Visual Studio 代码上构建 iOS 但也遇到了相同的错误 操作系统 macOS 14 0 beta 处理器M1 Pro 降级操作系统可以解决这个问题吗
  • 动态转换不适用于非多态基类?

    这里第二个演员给出了一个错误说 cast cc 35 35 error cannot dynamic cast base of type class CBase to type class CDerived source type is n
  • 复选框增加和减少问题

    现在我遇到一个问题 如果第一个复选框编号增加 然后单击第二个复选框 那么第一个复选框值将显示 1 它应该是因为我增加了 4 或 5 但通过选中另一个复选框 它将自动显示 1 我的 Js 代码 在此代码中 我单击复选框 然后增加数字 但我也希
  • 应用程序代码中的 try-catch 块无法捕获的异常

    MSDN 指出StackOverflowException 无法被 try catch 块捕获 http msdn microsoft com en en library system stackoverflowexception aspx
  • A* 用于寻找最短路径并避开障碍物

    我必须获得二维两点之间的 最短 最佳 距离 我必须避免可能连接在一起的线条形状 关于如何表示我可以行驶的节点有什么建议吗 我曾想过制作一个网格 但这听起来不太准确或优雅 如果一条线的任何点位于正方形内 该节点是正方形的中心 我会认为该节点不
  • 使用 BOOST_FUSION_ADAPT_ADT 增强类的融合序列化

    我正在尝试使用 boost fusion 为类获取序列化模块 我已将我的类转换为 boost fusion 序列 此示例取自 Michael Caisse 在 boostcon 13 上演讲的幻灯片 https github com boo
  • MVC 在呈现给用户之前更改响应的最后机会

    我需要在呈现给用户之前更改完整的 html 响应流 使用 html 解析 最后一次机会在哪里 什么时候 恕我直言 在 ASP NET MVC 环境中更改 HTML 响应的更好方法是使用操作过滤器 这是用于压缩输出的动作过滤器的示例 publ
  • 使用 eclipse 从 xsd 生成无头 xml

    在最新版本的免费开源 Eclipse IDE 中 您可以从 DTD 和 XSD 文件生成 XML 文档 右键单击给定的 dtd 或 xsd 文件 然后选择 生成 gt XML 文件 您可以选择要生成哪个根元素以及是否应生成可选属性和元素 我
  • 为什么这不起作用 - Android - onCreate()

    下面的代码不起作用 并抛出NullPointerException引起的RuntimeException public class ListFilteredActivity extends Activity LinearLayout typ
  • 替换网页上链接的方括号

    我正在尝试使用 jQuery Javascript 解析 html 内容 我想查找方括号之间的单词并更改链接的整个单词 Example div This is text inside a div It has a reference to
  • SingleChildScrollView/Column 内的 ReorderableListView

    我需要将可重新排序列表放入 SingleChildScrollView 中 但 ReorderableListView 没有像 ListView 那样的收缩包装 是否有解决方法可以在不使用过时且无人维护的包的情况下完成此布局 虽然 我还没有
  • 在 WinForms 应用程序中显示 XML 文件,具有类似 IE 的着色和折叠节点

    我想在我的 NET 2 0 WinForms 应用程序中显示一个 XML 文件 就像 IE 一样 您可以折叠节点 并且所有内容的颜色都很漂亮 有内置的方法可以做到这一点吗 您可以在应用程序的表单中托管 IE 也可以使用 IE 使用的相同 X
  • 在 PHP 中执行 exec() 或 system() 且不等待输出

    我想从 PHP 脚本中触发 eider exec 或 system 中的 shell 命令 但这是一项需要一段时间才能完成的任务 有没有办法触发它并继续运行 PHP 页面加载而不延迟 编辑 我使用的是 CentOS 6 PHP 5 3 取决
  • 猫头鹰旋转木马无法按 RTL 方向工作

    Owl Carousel 滑块不适用于 RTL 我加rtl true在配置中 但它没有加载滑块 滑块空间在那里并且导航正在显示 但只有滑块内容没有显示 我该如何解决这个问题 我的代码如下 div class row div class it
  • 指定源目录时 Doxygen 找不到文件

    Hello 我尝试使用 doxygen 从一组文件夹生成代码文档 我的文件夹结构是这样的 root include include subdir file h src src subdir file cpp Documentation do
  • UNIX2DOS 功能

    bin ksh c cat PMSourceFileDir RT TgtFiles OutputFileStrPerfHdr PMSourceFileDir RT TgtFiles OutputFileStrPerfCSV unix2dos
  • 预处理器时间戳

    是否可以通过预处理器宏生成嵌入式 Unix 时间戳 例如 define VERSION EXPIRE TIMESTAMP 原因是 我有测试版 我想在编译时生成过期时间戳 在特殊的构建配置中 我已解决如下 define VERSION TIM
  • 为什么 returned() 不接受生成器?

    我正在努力写这样的东西 list reversed list el iterancestors 1 2 3 生成器很糟糕 因为我被迫将它们消耗到列表中 有没有办法简化这个 我认为reversed 应该接受迭代器 我错了吗 生成器不保证有最后