【问题标题】:multiple assignments in one line for loop python一行中的多个赋值for循环python
【发布时间】:2016-02-17 17:12:44
【问题描述】:

我想要一种在 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]

这样的事情可能吗?

【问题讨论】:

    标签: python for-loop multiple-assignment


    【解决方案1】:

    您可以改用zip() function

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

    或 Python 3 等价物:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-21
      • 2019-12-27
      • 2011-03-05
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多