合并不同长度的python列表

2023-12-01

我正在尝试合并两个 python 列表,其中给定索引处的值将在新列表中形成一个列表(元素)。例如:

merge_lists([1,2,3,4], [1,5]) = [[1,1], [2,5], [3], [4]]

我可以迭代这个函数来组合更多的列表。实现这一目标最有效的方法是什么?

编辑(第 2 部分)

在测试我之前选择的答案后,我意识到我有额外的标准和更普遍的问题。我还想合并包含列表的列表or价值观。例如:

merge_lists([[1,2],[1]] , [3,4]) = [[1,2,3], [1,4]]

在这种情况下,当前提供的答案会生成更高维度的列表。


一种选择是使用itertools.zip_longest(在Python 3中):

from itertools import zip_longest    

[[x for x in t if x is not None] for t in zip_longest([1,2,3,4], [1,5])]
# [[1, 1], [2, 5], [3], [4]]

如果您喜欢套装:

[{x for x in t if x is not None} for t in zip_longest([1,2,3,4], [1,5])]
# [{1}, {2, 5}, {3}, {4}]

在Python 2中,使用itertools.izip_longest:

from itertools import izip_longest    

[[x for x in t if x is not None] for t in izip_longest([1,2,3,4], [1,5])]
#[[1, 1], [2, 5], [3], [4]]

Update处理稍微复杂的情况:

def flatten(lst):

    result = []
    for s in lst:
        if isinstance(s, list):
            result.extend(s)
        else:
            result.append(s)

    return result

这很好地处理了上述两种情况:

[flatten(x for x in t if x is not None) for t in izip_longest([1,2,3,4], [1,5])]
# [[1, 1], [2, 5], [3], [4]]

[flatten(x for x in t if x is not None) for t in izip_longest([[1,2],[1]] , [3,4])]
# [[1, 2, 3], [1, 4]]

请注意,即使这适用于上述两种情况,但它仍然可能在更深的嵌套结构下崩溃,因为情况很快就会变得复杂。对于更通用的解决方案,你可以看到here.

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

合并不同长度的python列表 的相关文章

  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • ipython/ pylab/ matplotlib安装和初始化错误

    我在 OS X El Captain 上安装了 matplotlib anaconda ipython 然而 即使在尝试以所有可能的方式设置环境变量之后 我仍无法启动 ipython shell pylab 版本 这是错误 ImportEr
  • 如何使用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
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 如何让 Gitlab 运行程序在成功构建时将代码合并到分支中

    嗯 标题几乎是不言自明的 总之 如果构建成功 我希望将一个分支 即开发 合并到另一个分支 即生产 我尝试了 jakub kania 解决方案 但我总是得到id rsa invalid format 我认为 gitlab 秘密变量以某种方式被
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图

随机推荐

  • 如何更改 Upickerview 位置?

    这是故事板 我创建了一个像这样的选择器视图 pickerView UIPickerView pickerView center view center view addSubview pickerView pickerView dataSo
  • 追加到磁盘上文件中的 golang gob

    我正在努力拯救gob 将数据编码在磁盘上的文件中作为简单的数据存储 但是 当我下次打开它时 gob 编码器只会忽略文件中已有的任何数据 并在发送数据之前开始发送已发送格式的定义 看见那个gob Encoder需要一个io Writer 而不
  • javascript 错误:无法在“文档”上执行“elementsFromPoint”:提供的双精度值是非有限的

    我最近将我的 chrome 版本更新到最新版本 即79 0 3945 130 Official Build 64 bit 并从下载兼容的 chromedriverhere 我开始面临这个错误 在详细调试时我发现Select导致问题的类 无论
  • 我应该在 Selenium 页面对象模型模式中在哪里定义模式特定代码

    在 Selenium 页面对象模型模式中 网页被表示为类 页面上的各种元素被定义为类中的变量 用户交互被实现为类中的方法 也就是说 为每个页面创建单独的类 有一个电子商务应用程序 其中包含登录 主页 搜索 产品 购物车 结账和订单确认等页面
  • 相关热图

    我想使用热图表示相关矩阵 有一种东西叫做相关图在 R 中 但我认为 Python 中没有这样的东西 我怎样才能做到这一点 值从 1 到 1 例如 1 0 00279981 0 95173379 0 02486161 0 00324926 0
  • 替换字符串中的占位符变量

    刚刚完成这个功能 基本上 它应该查看字符串并尝试查找任何占位符变量 这些变量将放置在两个大括号之间 它获取大括号之间的值 并使用它来查找数组中应与键匹配的位置 然后它用匹配键的数组中的值替换字符串中的大括号变量 但它有一些问题 首先是当我v
  • 推送通知不会发送到某些设备[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我的推送通知服务有一个非常奇怪的行为 我正在 20 台设备上测试新应用程序 但有 3 台设备没有收到任何推送通知 我在这里有自己的服务器来管理推送订阅 并且在该服务中我拥有这些设备的令牌
  • 如何在 Power BI 中格式化 matplotlib 可视化的时间序列数据

    从今天 2018 年 8 月 9 日 开始 Power BI 支持 Python 可视化 他们之前已经支持 R 可视化 但我仍然发现这些集成有点尴尬 让我告诉你我的意思 假设您有一个包含时间序列数据的表 其中顶行包含名称 日期 和 值 内容
  • 具有通用服务的 Service Fabric

    我希望有一个通用类型的服务 即 public interface IFooService
  • LinkedIn API 2 和来自 r_basicprofile 的 VanityName

    LinkedIn 最近更新了他们的 API 现在我无法获取公共用户个人资料 url 通过虚名 在 OAuth2 身份验证阶段 好像r 基本配置文件不再可用 有没有机会获得这个网址 如果有的话 您能描述一下如何获得吗 根据以下 LinkedI
  • print() 在 Opera 浏览器上不起作用

    我正在尝试使用 JavaScript 在 Opera 浏览器中打开打印对话框 这print 在所有浏览器中都工作正常 但在 Opera 中却不起作用 我的print 代码为 var printContent document getElem
  • PHP MySQLi 从 multi_query() 插入 id

    有没有办法在使用 mysqli multi query 函数插入几行后获取最后生成的 auto increment ID EDIT 我设法通过添加 SELECT LAST INSERT ID 使其工作 在多查询中的每个 INSERT 查询之
  • 如何从文本中提取数字? [复制]

    这个问题在这里已经有答案了 我有流动的文本字符串 string lt CBOE SHORT TERM VIX FUTURE DEC 2016 81 64 n n CBOE SHORT TERM VIX FUTURE JAN 2017 18
  • 在带有 UDF 的单元格公式中使用内置枚举

    我有一个用户定义的函数 它采用一个具有关联内置函数的参数enum Public Function bgrcolor cells rng As Range xlcl As Long As Integer 我想在单元格中写一个这样的公式 bgr
  • 如何将从外部作用域调用的方法存根到被测函数?

    我有一个使用 node redis 库创建的 Redis 客户端 https github com NodeRedis node redis var client require redis createClient 6379 localh
  • BCP 数据文件中遇到意外的 EOF

    我正在尝试使用 bcp 将数据从一个表复制到另一个数据库中的另一个表 首先使用创建格式文件 bcp dbName1 dbo tableName1 format nul S serverName1 T f D tableName1 fmt t
  • 为 ZBarReaderViewController 添加 uibarbutton

    我正在 ZBarReader 上工作 到目前为止我所拥有的是 ZBarReaderViewController controller ZBarReaderViewController alloc init controller naviga
  • Django 的 FormWizard 中的空 ModelFormset

    我正在使用 Django 的 FormWizard 它工作正常 但我无法正确显示任何空模型表单集 我有一个模型叫Domain 我正在创建一个像这样的 ModelFormset DomainFormset modelformset facto
  • JSF f:事件执行顺序

    假设我有多个 f event 标签来处理同一类型的事件
  • 合并不同长度的python列表

    我正在尝试合并两个 python 列表 其中给定索引处的值将在新列表中形成一个列表 元素 例如 merge lists 1 2 3 4 1 5 1 1 2 5 3 4 我可以迭代这个函数来组合更多的列表 实现这一目标最有效的方法是什么 编辑