在 Python 中使用列表输出而不是元组进行压缩
Zip with list output instead of tuple in Python
要从zip()
函数中获取列表输出而不是元组:
- 使用列表理解来迭代
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)
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()
函数中获取列表输出而不是元组:
- 使用该
map()
函数将zip
对象中的每个元组传递给
list()
类。 - 使用
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()
该类将其转换为列表。
您选择哪种方法是个人喜好的问题。我会继续使用列表理解,因为我发现它更明确且更易于阅读。