python - 将列表与元组列表组合

标签 python list

l1 = [1, 2, 3, 4]
l2 = [(10, 20), (30, 40), (50, 60), (70, 80)]

>>> print(list(zip(l1, l2)))

[(1, (10, 20)), (2, (30, 40)), (3, (50, 60)), (4, (70, 80))]

但是,我希望它只是一个包含四个元组的列表,如下所示:

[(1, 10, 20), (2, 30, 40), (3, 50, 60), (4, 70, 80)]

我也试过:

>>> print(list(zip(l1, *l2)))

[(1, 10, 30, 50, 70), (2, 20, 40, 60, 80)]

所以我的问题是:

如何压缩包含元组列表或列表列表的列表?

最佳答案

解决这个问题的更通用的方法是考虑在需要时将两个列表按比例放大/缩小到相同的维度

>>> [(a, ) + b for a, b in zip(l1, l2)]
[(1, 10, 20), (2, 30, 40), (3, 50, 60), (4, 70, 80)]

在您的示例中,与第一个列表相比,第二个列表有一个额外的维度

  1. 将第一个列表转换为与第二个列表匹配的更高维度
  2. 减少第二个列表的维度

在这种特殊情况下,第一种方法更容易,因此是显而易见的选择

关于python - 将列表与元组列表组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30542214/

相关文章:

python - 需要 boolean 切片的帮助

python - mpi4py Sendrecv 的使用

python - 你什么时候在 Python 中使用 'self'?

java - 如何在Java中深度复制双向链表

list - 带有元组的 Haskell 类型

list - 如何在 Emacs Lisp 中设置列​​表中的部分参数?

python - 如何在 Pandas 列内的日期范围之间生成随机日期?

python - Django 或 mod_wsgi 在运行时会修改 sys.path 吗?

python - 如何连接两个列表以使元素处于替代位置?

r - 如何根据 R 中元素的长度对列表进行子集化