首页 > 解决方案 > 使用尾元组的变量迭代元组列表

问题描述

[(1,2,3), (2,3,1), (1,1,1)]如何在将每个元组拆分为头部和尾部时进行迭代?我正在寻找一种简洁的pythonic方式,如下所示:

for h, *t in [(1,2,3), (2,3,1), (1,1,1)]:
    # where I want t to be a tuple consisting of the last two elements
    val = some_fun(h)
    another_fun(val, t)

以上不适用于python 2.7。

标签: pythonpython-2.7for-looptuples

解决方案


您可以使用mapto 和 list 切片:

for h, t in map(lambda x: (x[0], x[1:]), [(1,2,3), (2,3,1), (1,1,1)]):
    print("h = %s, t=%s"%(h, t))
#h = 1, t=(2, 3)
#h = 2, t=(3, 1)
#h = 1, t=(1, 1)

推荐阅读