1

我想要一种在 for 循环中将两个变量分配给两个不同值的单行方式。

我有一个值列表

list_values = [[1, 2, 3], [4, 5, 6]]

我试过这样做,它可以工作但不是pythony:

first = [i[0] for i in list_values]
second = [i[1] for i in list_values]

这使得:

first = [1, 4]
second = [2, 5]

想写一些类似的东西:

first, second = [i[0]; i[1] for i in list_values]

这样的事情可能吗?

4

1 回答 1

2

您可以改用该zip()功能

first, second = zip(*list_values)[:2]

或 Python 3 等价物:

from itertools import islice

first, second = islice(zip(*list_values), 2)

zip()将输入列表中的元素配对成一系列新元组;你只需要前两个,所以你切片结果。

于 2016-02-17T17:14:59.357 回答