如何在Python中“解压缩”列表?[副本]

lsmepo6l  于 2023-06-28  发布在  Python
关注(0)|答案(1)|浏览(103)
    • 此问题已在此处有答案**:

Transpose list of lists(14个回答)
3年前关闭。
假设我有两个列表:

  1. a = [1, 2, 3, 4]
  2. b = [5, 6, 7, 8]

基于a,我想删除两个列表中该索引处的值,如果它是偶数。我想到了用zip:

  1. c = [i for i in zip(a,b) if i[0] % 2 == 0]

但是现在我怎样才能把[(2, 6), (4, 8)]转换回两个单独的列表呢?如:

  1. a = [2, 4]
  2. b = [6, 8]

显然,我可以使用两个列表解析,但我很好奇,是否有可能在一行代码中使用一些内置的Python函数来实现这一点。类似于:

  1. a, b = somefunc(c)
arknldoa

arknldoa1#

您可以再次使用zip

  1. a = [1, 2, 3, 4]
  2. b = [5, 6, 7, 8]
  3. a, b = zip(*[i for i in zip(a,b) if i[0] % 2 == 0])

有关zip(*...)撤销zip(...)的详细信息,请参阅this answer

相关问题