python - 将两个 Python 列表与部分为空的子列表组合起来

标签 python list list-comprehension

我有一个嵌套列表(列表的列表),其中每个子列表可能包含一个或多个元素(整数),但有些甚至是空的:

mynestedlist = [[], [], [], [4,10], [4], [10]]

此外,我还有另一个相同长度的列表(全部为整数):

otherlist = [2,4,14,32,21,12]

现在,我想获取嵌套列表元素不为空的元素的元组组合列表。实际上每个元组都应该包含来自两个列表的元素。

例如,mynestedlist 中的第一个非空列表是第 4 个,即 [4,10]。 otherlist 中的相应元素是 32。此信息应强制转换为两个元组 (32,4)(32,10)。因此,如果 mynestedlist 的子列表中有多个条目,则应创建多个元组。 最后输出应该是 [(32,4),(32,10),(21,4),(12,10)]。如何以有效的方式做到这一点?

到目前为止我尝试的是

*) 使用子列表的总和检查子列表是否为空

[sum(x)>0 for x in mynestedlist]

*) 将两个列表合并成一个字典

combined_list = dict(zip(otherlist,mynestedlist))

我完全不确定这是不是要走的路?

最佳答案

这对于列表理解来说实际上非常简单,

>>> [(b, e) for a, b in zip(mynestedlist, otherlist) for e in a]
[(32, 4), (32, 10), (21, 4), (12, 10)]

您可以使用 itertools.izip如果在 Python 2.x 上并且有长列表。

关于python - 将两个 Python 列表与部分为空的子列表组合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34187003/

相关文章:

python - 有没有办法判断何时使用 PYTHONSTARTUP 加载 python 文件与作为脚本运行?

python - 正则表达式不过是写在匹配

c# LINQ 按对象列表属性的子属性对列表进行排序

android - 在 Kotlin 中固定列表大小的最佳方法是什么

c# - 如何将列表参数添加到 LINQ 查询?

python - 如何将列表中的元素搜索到字符串中并提取匹配项旁边的关键字

python - 如何从 tkinter 中的特定网格位置检索值?

python - 如何动态创建变量?

具有多个参数的 Python 映射函数到元组列表

python - 离散积分如果值列表