循环 Python 的一行中的多个赋值



我想要一种将两个变量分配给 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]

这样的事情可能吗?

你可以改用zip()函数:

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

或 Python 3 等效版本:

from itertools import islice
first, second = islice(zip(*list_values), 2)

zip()输入列表中的元素配对成一系列新元组;您只需要前两个元组,因此对结果进行切片。

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

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

下次使用"i"以外的其他东西,如"elem"等。

相关内容

  • 没有找到相关文章

最新更新