Python - 带元组解包的列表推导式

8

我有一个元组列表,例如:

tuple_list = [ (0,1,2), (3,4,5), (6,7,8) ]

我需要创建一个列表,其中每个元组都被转换为一个带有其他静态项的列表,例如:

new_list = [ [var1, var2, unpack(t)] for t in tuple_list ]

我该如何在Python中实现这个功能?


为什么要踩,问题是合法的呀? - stacksonstacks
1
问题被标记为py27,但在py35+中有新的字面量解包方式:[[var1, var2, *t] for t in tuple_list] - anthony sottile
3个回答

6
如果你的元组不是太长,可以这样做:
[var1, var2, k, v, r for (k, v, r) in youList]

否则,编写一个函数:
def myPack(*arg):
    return list(arg)
[myPack(var1, var2, *I) for I in youList]

2
new_list = [ [var1, var2] + list(t) for t in tuple_list ]

1
new_list = [ [var1, var2] + [val for val in t] for t in tuple_list]
// => [[var1, var2, 0, 1, 2], [var1, var2, 3, 4, 5], [var1, var2, 6, 7, 8]]

谢谢你指引我正确的方向,通过用简单的 list(t) 替换嵌套的列表推导式,可以使它更加简洁。 - stacksonstacks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接