一行中的多个赋值 for 循环 python
multiple assignments in one line for loop 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()
function:
first, second = zip(*list_values)[:2]
或 Python 3 等价物:
from itertools import islice
first, second = islice(zip(*list_values), 2)
zip()
将输入列表中的元素配对成一系列新元组;你只需要前两个,所以你切分结果。
我想要一种在 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()
function:
first, second = zip(*list_values)[:2]
或 Python 3 等价物:
from itertools import islice
first, second = islice(zip(*list_values), 2)
zip()
将输入列表中的元素配对成一系列新元组;你只需要前两个,所以你切分结果。