【发布时间】:2021-03-03 08:40:05
【问题描述】:
一直在搜索该网站,但我找不到似乎对我有用的解决方案。我有一个我假设是元组的列表,每个元组中有 2 个元素。我想用元组遍历列表并将每个元组分解成一个列表。
数据:
[('A', 1), ('B', 2), ('C', 3)]
预计有 2 个列表计数:
['A', 'B', 'C']
[1, 2, 3]
【问题讨论】:
标签: python python-3.x list tuples
一直在搜索该网站,但我找不到似乎对我有用的解决方案。我有一个我假设是元组的列表,每个元组中有 2 个元素。我想用元组遍历列表并将每个元组分解成一个列表。
数据:
[('A', 1), ('B', 2), ('C', 3)]
预计有 2 个列表计数:
['A', 'B', 'C']
[1, 2, 3]
【问题讨论】:
标签: python python-3.x list tuples
以 Python 方式执行此操作的最漂亮方法实际上是解压缩元组
zipped = [("a", 1), ("b", 2), ("C", 3)]
unzipped_object = zip(*zipped)
unzipped_list = list(unzipped_object)
print(unzipped_list)
输出:
[('a', 'b', 'C'), (1, 2, 3)]
【讨论】:
使用列表推导:
lst = [('A', 1), ('B', 2), ('C', 3)]
l1 = [elt[0] for elt in lst]
l2 = [elt[1] for elt in lst]
或者可以在一个循环中完成:
l1, l2 = [], []
for elt in lst:
l1.append(elt[0])
l2.append(elt[1])
【讨论】:
如果您在理解列表时遇到困难,这里是长且更易读的版本。 另一个优点是这个版本使用了一个 for 循环。
lst = [('A', 1), ('B', 2), ('C', 3)]
list1 = []
list2 = []
for couple in lst:
list1.append(couple[0])
list2.append(couple[1])
print(list1)
print(list2)
【讨论】:
你可以使用 for 循环。
lst = [('A', 1), ('B', 2), ('C', 3)]
l1 = []
l2 = []
for tup in lst:
l1.append(tup[0])
l2.append(tup[1])
【讨论】: