在 Python 中使用列表输出而不是元组进行压缩

在 Python 中使用列表输出而不是元组进行压缩

Zip with list output instead of tuple in Python

要从zip()函数中获取列表输出而不是元组:

  1. 使用列表理解来迭代zip对象。
  2. 使用list()该类将每个元组转换为列表。
  3. 新列表将包含嵌套列表而不是元组。
主程序
list_1 = [1, 2, 3] list_2 = ['a', 'b', 'c'] list_of_lists = [list(tup) for tup in zip(list_1, list_2)] # 👇️ [[1, 'a'], [2, 'b'], [3, 'c']] print(list_of_lists)

zip函数并行迭代多个可迭代对象,并生成元组,其中每个可迭代对象都有一个项目

默认情况下,该zip函数返回一个元组迭代器。

主程序
list_1 = [1, 2, 3] list_2 = ['a', 'b', 'c'] # 👇️ [(1, 'a'), (2, 'b'), (3, 'c')] print(list(zip(list_1, list_2)))

我们使用列表理解来迭代zip对象。

列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。

在每次迭代中,我们使用list()该类将元组转换为列表。

主程序
list_1 = [1, 2, 3] list_2 = ['a', 'b', 'c'] list_of_lists = [list(tup) for tup in zip(list_1, list_2)] # 👇️ [[1, 'a'], [2, 'b'], [3, 'c']] print(list_of_lists)

列表类接受一个可迭代对象并返回一个列表对象

或者,您可以使用该map()功能。

要从zip()函数中获取列表输出而不是元组:

  1. 使用该map()函数将zip对象中的每个元组传递给
    list()类。
  2. 使用list()该类将map对象转换为列表。
主程序
list_1 = [1, 2, 3] list_2 = ['a', 'b', 'c'] list_of_lists = list(map(list, zip(list_1, list_2))) # 👇️ [[1, 'a'], [2, 'b'], [3, 'c']] print(list_of_lists)

map()函数将一个函数和一个可迭代对象作为参数,并使用可迭代对象的每个项目调用该函数。

map()函数将zip 对象中的每个元组传递给list()类。

map()函数返回一个map对象,因此我们不得不使用list()该类将其转换为列表。

您选择哪种方法是个人喜好的问题。我会继续使用列表理解,因为我发现它更明确且更易于阅读。