python合并两个列表(偶数/奇数元素)

2023-11-24

给定两个列表,我想合并它们,以便第一个列表中的所有元素都是偶数索引(保留它们的顺序),第二个列表中的所有元素都是奇数索引(也保留它们的顺序)。下面的例子:

x = [0,1,2]
y = [3,4]

result = [0,3,1,4,2]

我可以使用 for 循环来做到这一点。但我想可能有一种奇特的Python式方法来做到这一点(使用不太为人所知的函数或类似的东西)。有没有比编写for循环更好的解决方案?

编辑:我正在考虑列表理解,但到目前为止还没有提出任何解决方案。


这是你可以使用的东西。 (使用list(izip_longest(...))对于 Py2x)

>>> from itertools import chain
>>> from itertools import zip_longest
>>> list(filter(lambda x: x != '', chain.from_iterable(zip_longest(x, y, fillvalue = ''))))
[0, 3, 1, 4, 2]

这适用于任意长度的列表,如下所示 -

>>> x = [0, 1, 2, 3, 4]
>>> y = [5, 6]
>>> list(filter(lambda x: x != '', chain.from_iterable(zip_longest(x, y, fillvalue = ''))))
[0, 5, 1, 6, 2, 3, 4]

关于它正在工作的解释 -

  1. zip_longest(...)使用填充值压缩列表并为不等长度的迭代填充给定的填充值。因此,对于您最初的示例,它的计算结果类似于[(0, 3), (1, 4), (2, '')]
  2. 我们需要展平结果,因为该方法为我们提供了一个元组列表。为此我们使用chain.from_iterable(...)给我们类似的东西[0, 3, 1, 4, 2, ''].
  3. 我们现在使用filter(...)删除所有出现的''我们得到了所需的答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python合并两个列表(偶数/奇数元素) 的相关文章

随机推荐

  • getApplicationContext()、getBaseContext()、getApplication()、getParent()

    有什么区别 getApplicationContext getBasecontext getApplication getParent 您能用一个简单的例子来详细说明吗 获取应用程序上下文 应用程序上下文与应用程序相关联 并且在整个生命周期
  • 在 Android 应用中使用 Firebase (BaaS) 存储电子邮件和密码时,如何包含用户名?

    火力基地createUser 方法需要一个电子邮件和密码字段 但如果我还想允许用户使用类似于 Snapchat Instagram StackOverflow 等的自定义用户名怎么办 有没有办法修改现有方法以接受该字段 或者我是否需要手动推
  • 为什么 Python 无法识别我的 utf-8 编码源文件?

    这是一个带有非 ASCII 字符的小 tmp py if name main s print s 运行它我收到以下错误 Traceback most recent call last File tmp py line 3 in
  • 在 plpython3u 过程中导入 Python 包时出现“找不到模块”

    我正在使用一个plpython3存储的函数 在postgres数据库上MacOS 与标准企业数据库包一起安装 我可以导入标准 python 包 例如 CREATE OR REPLACE FUNCTION foo x double preci
  • 仅将一条记录标记为默认的约束

    如何在表上设置约束 以便只有一条记录具有其isDefault位字段设置为 1 约束不是表范围 而是由 FormID 指定的每组行的一个默认值 使用唯一的过滤索引 在 SQL Server 2008 或更高版本上 您可以简单地使用唯一过滤索引
  • 在 Elasticsearch 插件中读取文件

    我正在编写一个 elasticsearch 插件 它依赖于从磁盘上的文件读取数据 当我尝试在代码中访问此文件时 出现以下异常 Caused by java security AccessControlException access den
  • Spring Boot 拦截所有异常处理程序

    我正在尝试执行一些适用于我所有的通用逻辑 ExceptionHandler代码中 我知道我可以写一个HandlerInterceptor拦截快乐路径 但我想挂钩异常处理生命周期 以便可以在呈现错误响应之前执行一些常见逻辑 例如日志记录 无论
  • CPP + 正则表达式验证 URL

    我想在 c MFC 中构建一个正则表达式来验证 URL 正则表达式必须满足以下条件 有效网址 http cu 241 dell tech co in MyWebSite ISAPIWEBSITE Denypage aspx http www
  • Android Contentprovider - 在插入方法中更新

    可以打电话吗SQLiteDatabase更新方法在insert 内容提供者的重写方法 基本上没问题 但由于你没有提供代码 我只能发布两种可能的方法 First In your content provider public Uri inse
  • 如何重置字典中的所有值

    green 0 y3 1 m tt 0 newaccount 0 egg 0 results 0 dan 0 Lewis 0 NewAccount2 0 testyear3 1 testyear6 0 NewAccount1 0 testy
  • 如何设置TextInputLayout错误消息颜色?

    如何更改可设置为显示在文本字段下方的错误消息的颜色TextInputLayout via setError 在这里查看错误状态 它通常显示为红色 我想改变它 我应该在我的项目中使用哪些项目名称 键styles xml文件来定位颜色 Edit
  • 使用 Jenkins 从机器 B 运行机器 A 的构建

    我有 2 台电脑 Com A Com B 我在 Com A 上使用 selenium webdriver Testng 和 maven 构建自动化功能脚本 Com A 已经安装了 Jenkins 的所有内容 但 Com B 只有 jenki
  • 避免 WordPress 插件上的 jquery 冲突的防弹方法

    我开发 WordPress 插件已经有一段时间了 我的所有插件似乎总是遇到以下问题 Jquery 冲突问题 我尝试了很多不同的方法来避免这些问题 但我总是让用户联系我说 当他们安装了我的一个插件时 它已经阻止了另一个插件的工作aahhhhh
  • 使用 swift 在图像上覆盖文本

    我正在尝试使用 Swift 在图像上覆盖一些文本 并在此处查看此代码 src 如何在 iOS Swift 中向图像添加文本 这会将文本置于正中央 我一直在改变价值观 var rect CGRectMake 10 150 inImage si
  • 如何获取android中停止服务的意图

    我在用stopService 停止服务 我想发送额外的数据意图 如何在服务中检索这些额外数据 据我所知 这个Intent未交付至Service以任何方式 代替stopService 您可以使用startService 传递您的额外内容 并在
  • 将新节点添加到现有 XmlDocument 对象

    我有一个以下格式的 xml
  • 玩!框架 - 视图未编译?

    我创建了一个新项目并使用 eclipse 使用eclipsify命令 基本上 我移动了app目录从旧项目到我创建的新项目 问题是 eclipse 无法识别这些视图 我收到如下错误 views html viewTopic 无法解析为类型 我
  • 反序列化期间未知元素将被忽略

    当我使用 XmlTextReader 反序列化 XML 文档时 没有相应类的文本元素将被简单地忽略 Note 这是not关于 XML 中缺少的元素 这些元素需要存在 而是存在于 XML 文本中 而在代码中没有等效属性 我本希望得到一个异常
  • 如何将日期时间格式设置为 24 小时时间?

    我需要日期时间中的字符串来以 24 小时格式显示时间 var curr DateTime Now string s Console WriteLine s 输出结果必须是 16 38 谢谢 使用大写HH对于 24 小时格式 String s
  • python合并两个列表(偶数/奇数元素)

    给定两个列表 我想合并它们 以便第一个列表中的所有元素都是偶数索引 保留它们的顺序 第二个列表中的所有元素都是奇数索引 也保留它们的顺序 下面的例子 x 0 1 2 y 3 4 result 0 3 1 4 2 我可以使用 for 循环来做