交错2个不等长度的列表[重复]

2023-12-27

我希望能够交错两个长度可能不相等的列表。我所拥有的是:

  def interleave(xs,ys):
    a=xs
    b=ys
    c=a+b
    c[::2]=a
    c[1::2]=b
    return c

这对于长度等于或只是 +/-1 的列表非常有用。但如果假设 xs=[1,2,3] 和 ys= ["hi,"bye","no","yes","why"] 则会出现此消息:

c[::2]=a
ValueError: attempt to assign sequence of size 3 to extended slice of size 4

如何使用索引来解决这个问题?或者我必须使用for循环? 编辑:我想要的是让额外的值出现在最后。


您可以使用itertools.izip_longest http://docs.python.org/2/library/itertools.html#itertools.izip_longest here:

>>> from itertools import izip_longest
>>> xs = [1,2,3]
>>> ys = ["hi","bye","no","yes","why"]
>>> s = object()
>>> [y for x in izip_longest(xs, ys, fillvalue=s) for y in x if y is not s]
[1, 'hi', 2, 'bye', 3, 'no', 'yes', 'why']

Using roundrobin食谱来自迭代工具 http://docs.python.org/2/library/itertools.html#recipes,这里不需要哨兵值:

from itertools import *
def roundrobin(*iterables):
    "roundrobin('ABC', 'D', 'EF') --> A D E B F C"
    # Recipe credited to George Sakkis
    pending = len(iterables)
    nexts = cycle(iter(it).next for it in iterables)
    while pending:
        try:
            for next in nexts:
                yield next()
        except StopIteration:
            pending -= 1
            nexts = cycle(islice(nexts, pending))

Demo:

>>> list(roundrobin(xs, ys))
[1, 'hi', 2, 'bye', 3, 'no', 'yes', 'why']
>>> list(roundrobin(ys, xs))
['hi', 1, 'bye', 2, 'no', 3, 'yes', 'why']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

交错2个不等长度的列表[重复] 的相关文章

  • Python Nose 导入错误

    我似乎无法理解鼻子测试框架 https nose readthedocs org en latest 识别文件结构中测试脚本下方的模块 我已经设置了演示该问题的最简单的示例 下面我会解释一下 这是包文件结构 init py foo py t
  • 编辑 scikit-learn 决策树

    我想编辑 sklearn DecisionTree 例如改变条件或切割节点 叶子等 但似乎没有功能可以做到这一点 如果我可以导出到文件 编辑它以导入 如何编辑决策树 环境 Windows 10 python3 3 sklearn 0 17
  • KFold 和 ShuffleSplit CV 有什么区别?

    看起来 KFold 每次迭代对象时都会生成相同的值 而 Shuffle Split 每次都会生成不同的索引 它是否正确 如果是这样 其中一个相对于另一个有什么用处 cv cross validation KFold 10 n folds 2
  • 为什么 tkinter / window.update 在我的程序中随着时间的推移变得更慢?

    我发现当我调用 window update 时 当向窗口写入的内容较少时 它的运行速度会更快 但后来 当我向窗口写入更多元素时 window update 需要更长的时间 请参阅下面的我的代码 您可以看到它在更新窗口之前一次向屏幕 100
  • 子进程改变目录

    我想在子目录 超级目录中执行脚本 我需要首先进入该子目录 超级目录 我无法得到subprocess进入我的子目录 tducin localhost Projekty tests ve python Python 2 7 4 default
  • Python sqlite3游标没有属性commit

    当我运行这段代码时 path Scripts wallpapers single png conn sqlite3 connect Users Heaven Library Application Support Dock desktopp
  • html 解析器 python

    我正在尝试解析一个网站 我正在使用 HTMLParser 模块 问题是我想解析第一个 a href 评论后 但我真的不知道该怎么做 所以我在文档中发现有一个函数叫做handle comment 但我还没有找到如何正确使用它 我有以下内容 i
  • 如何使用循环将十进制转换为二进制?

    我想编写一个程序 将十进制数 0 到 9 转换为二进制数 我可以编写如何使用重复除法将十进制数转换为二进制数的代码 但是 我在创建一个以二进制格式打印十进制数字 0 到 9 的循环时遇到了麻烦 这是我的代码 number 0 remaind
  • Django - 电子邮件发送两次

    每当我使用如下所示的电子邮件设置从views py调用下面的方法时 电子邮件的两份副本都会发送给收件人 并且我收到如下所示的错误 def sendEmailBasic request msg EmailMessage Request Cal
  • 在Python中删除带有重音符号的字符串中的所有非字母字符

    我正在尝试使用 Python 3 7 从包含重音符号的字符串中删除所有非字母字符 空格除外 我尝试了以下方法 import re text 29 1981 4 2008 clean text re sub W d text print cl
  • 如何使用 PySpark 有效地将这么多 csv 文件(大约 130,000 个)合并到一个大型数据集中?

    我之前发布了这个问题并得到了一些使用 PySpark 的建议 如何有效地将这一大数据集合并到一个大数据框中 https stackoverflow com questions 60259271 how can i merge this la
  • Python 视频框架

    我正在寻找一个 Python 框架 它将使我能够播放视频并在该视频上绘图 用于标记目的 我尝试过 Pyglet 但这似乎效果不是特别好 在现有视频上绘图时 会出现闪烁 即使使用双缓冲和所有这些好东西 而且似乎没有办法在每帧回调期间获取视频中
  • cmd 和 workbench mysql 查询性能差异

    我有两个问题 正如我的标题 哪一个对于对大量数据运行大型查询更有效 我查看了 MySQL 文档 其中解释了工作台的性能https www mysql com products workbench performance https www
  • 为什么“return self”返回 None ? [复制]

    这个问题在这里已经有答案了 我正在尝试获取链的顶部节点getTopParent 当我打印出来时self name 它确实打印出了父实例的名称 然而 当我回来时self 它返回 None 为什么是这样 class A def init sel
  • smooth_idf 是多余的吗?

    The scikit learn 文档 http scikit learn org stable modules generated sklearn feature extraction text TfidfTransformer html
  • 如何强制 Y 轴仅使用整数

    我正在使用 matplotlib pyplot 模块绘制直方图 我想知道如何强制 y 轴标签仅显示整数 例如 0 1 2 3 等 而不显示小数 例如 0 0 5 1 1 5 2 等 我正在查看指导说明并怀疑答案就在附近matplotlib
  • 如何向 SCons 构建添加预处理和后处理操作?

    我正在尝试在使用 SCons 构建项目时添加预处理和后处理操作 SConstruct 和 SConscript 文件位于项目的顶部 预处理动作 生成代码 通过调用不同的工具 gt 不知道在此预处理之后将生成的确切文件 可以创建用于决定生成哪
  • 如何设置 matplotlib 表中列的背景颜色

    我在一个目录中有多个 txt 文件 例如 d memdump 0 txt 1 txt 10 txt 示例文本文件如下 Applications Memory Usage kB Uptime 7857410 Realtime 7857410
  • 从另一个 python 脚本获取返回信息

    我在 Linux 上 我有一个 python 脚本 我想从另一个 python 脚本调用它 我不想将其作为模块导入 为了一层安全性 现在为了学术练习 因为我想弄清楚这一点 我实际上想让一个脚本使用 os system 或另一个类似的函数 并
  • 获取调用者文件的绝对路径

    假设我在不同的目录中有两个文件 1 py 比如说 在C FIRST FOLDER 1 py and 2 py 比如说 在C SECOND FOLDER 2 py 文件1 py进口2 py using sys path insert 0 pa

随机推荐

  • 如何摆脱动态 SQL

    我的包体之一中有以下动态 SQL OPEN ccur for select c category from test category c where c deptid PI N Dept and c category not in sEx
  • 引入 stylelint-config-standard-scss 时,stylelint 给出错误“类扩展值未定义不是构造函数或 null”

    我今天有点失落 我想将 Stylelint 添加到我的 Angular 项目中 所以我运行了 npm install stylelint stylelint config standard save dev 安装 stylelint 和标准
  • 为什么 UIAccessibility.post(notification: .announcement, argument: "arg") 没有在语音中宣布?

    在 iOS 中使用 Voice Over 时 呼叫UIAccessibility post notification argument 宣布字段错误实际上并不宣布该错误 我有一个提交按钮 当聚焦该按钮时 语音会如您所期望的那样读出按钮标题
  • 将列表转换为字符串?

    我想知道是否有办法将我的列表转换为字符串 示例 有没有办法转换MyList a b c d e to MyString abcde 原因 我试图用这 5 个字母组成单词 bag bad cab bed 我尝试创建一个标签来显示MyList
  • 如何暂停后续任务直到第一次完成然后与等待的任务共享其响应?

    我有一个actor它以第一个请求暂停后续请求直到完成的方式限制请求 然后与它们共享其响应 这样它们就不必发出相同的请求 这就是我想做的 let cache Cache let operation OperationStatus func e
  • 映射的网络驱动器未显示在“我的电脑”中

    我正在尝试使用 PowerShell 5 0 创建外部网络驱动器 我需要这些驱动器才能显示在 我的电脑 中 为此 我使用以下命令 New PSDrive Name X PSProvider FileSystem Root 192 168 0
  • int* p 和 int *p 声明之间的区别[重复]

    这个问题在这里已经有答案了 和有什么区别int p and an int p宣言 有没有不同 这是一个问题notation not 语义 第二个是较少误导 因为 int a b 明确宣布int and an int 然而 int a b 看
  • 需要适当的 MySQL 查询

    很抱歉在这里问这个问题 但我对 JOIN 的理解相当不稳定 几个小时的混乱并没有让我有任何结果 这是我已经设置的以及我需要的 我有三张表 每一张用于用户 位置和签到 每次用户前往某个位置时 他们都可以在那里签到 签到表示例如下 checki
  • 如何在 Chrome headless 中评估脚本?

    节点有 e and p分别用于评估和评估并打印的标志 我知道有一个 replChrome headless 的标志 但我想知道是否有一种方法可以评估并打印表达式 例如 chrome headless eval and print navig
  • 为什么 java.util.Collection 上有一个方法 iterator()

    当接口 java util Collection 已经扩展了定义了此方法的 java util Iterable 时 为什么还要在接口 java util Collection 上定义该方法 iterator 呢 我正在考虑某种向后兼容性或
  • 从Datamapper开始,关联问题

    我刚刚深入研究 Datamapper 和 Sinatra 并有一个关于关联的问题 以下是我拥有的一些型号 这就是我想要实现的 我在锻炼项目和锻炼方面遇到问题 锻炼将单独管理 但锻炼项目有与每一行关联的单个锻炼 锻炼 只是类型的列表 锻炼 跑
  • 带有重新分析点的FolderBrowserDialog SelectedPath

    当我选择的文件夹位于远程服务器上并且是符号链接 或任何类型的重新分析点 时 我遇到了 FolderBrowserDialog 的 SelectedPath 属性问题 如果我选择普通文件夹 则会返回完整路径 例如 SERVER folder
  • MySQL 数据 - 实现分页的最佳方式?

    我的 iPhone 应用程序连接到我的 PHP Web 服务以从 MySQL 数据库检索数据 一个请求最多可返回 500 个结果 实现分页并一次检索 20 个项目的最佳方法是什么 假设我从数据库收到前 20 个条目 现在如何请求接下来的 2
  • java.lang.String的哈希码真的被缓存了吗?

    String s1 String1 System out println s1 hashCode return an integer i1 Field field String class getDeclaredField value fi
  • 在 Python 中对集合进行排序与​​对列表进行排序在时间上存在巨大差异

    我想知道我是否应该将数据结构作为集合或列表 大多数情况下我会进行集合运算 但最终我需要对其进行排序 我想知道是否应该先将集合设为列表 然后使用sorted list my set 或者立即对集合进行排序sorted my set 可以说 我
  • SPARQL DESCRIBE 查询

    看来我不理解 SPARQL DESCRIBE 查询 我需要检索与条件匹配的资源的完整图表 在我尝试过的一个 SPARQL 端点上 挪威 R data N http data bibsys no data query authority ht
  • 如何更改 Android 上切换按钮的背景颜色

    我尝试使用 XML 文件将切换按钮的背景颜色更改为白色 但切换按钮完全损坏 看起来所有的按钮都被白色覆盖了 当我将切换按钮的颜色更改为白色时 切换按钮上没有打开或关闭的指示 是否有另一种方法可以更改背景而不会损坏切换按钮的指示
  • 使用 React Router 6 导航时恢复滚动位置

    如何设置 React Router 6 以在导航和刷新浏览器窗口时恢复滚动位置 React Router 5 有一个关于滚动恢复的页面 https v5 reactrouter com web guides scroll restorati
  • 如何混淆(保护)JavaScript? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想制作一个非开源的 JavaScript 应用程序 因此我想了解如何混淆我的 JS 代码 这可能吗 混淆 尝试YUI压缩器 http
  • 交错2个不等长度的列表[重复]

    这个问题在这里已经有答案了 我希望能够交错两个长度可能不相等的列表 我所拥有的是 def interleave xs ys a xs b ys c a b c 2 a c 1 2 b return c 这对于长度等于或只是 1 的列表非常有