我希望解包我通过以下方式创建的元组,以便结果只是一个简单的列表。我可以用2-3行代码得到所需的结果,但肯定有一种更简洁的列表推导式吧?
>>> x = range(10)
>>> y = [(i,j**2) for i,j in zip(x,x)]
>>> y
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9, 81)]
我想要的是 result = [0,0,1,1,2,4,3,9.....]
进行中
y = len(x)*[0]
y[::2] = x
y[1::2] = [i**2 for i in x]
这可以满足我的需求,但如果我需要更一般的情况怎么办:
y = [(i, sqrt(i), i**3, some_operation_on_i, f(i), g(i)) for i in x]
比如我想得到一个直接的结果列表,其中我只指定了一个操作(平方),以便在每个i后面跟随任意数量的操作。