将列表列表分成一列[Python]

时间:2017-09-07 00:02:59

标签: python

我有这样的数据:

[[var, list], [x1, [x,y,z]], [x2, [a,b,c]]]

我想将其转化为:

[[var, list], [x1, x],[x1,y],[x1,z], [x2, a],[x2,b],[x2,c]]

但我不知道如何。

2 个答案:

答案 0 :(得分:1)

让我先解释一下你的起始名单:

data = df
c = df[df['Parameter1_Calculation']=='ALL']
data.drop(c.index).append(c)

根据需要重新排列:

>>> z = [['var', ['list']], ['x1', ['x','y','z']], ['x2', ['a','b','c']]]

或者,进一步重新安排:

>>> [ [[x, y] for y in lst] for x, lst in z]
[[['var', 'list']], [['x1', 'x'], ['x1', 'y'], ['x1', 'z']], [['x2', 'a'], ['x2', 'b'], ['x2', 'c']]]

答案 1 :(得分:0)

这不是最佳解决方案,但它使用非常基本的python命令,以便您能够跟踪正在发生的事情。

data = [['var', 'list'], ['x1', ['x','y','z']], ['x2', ['a','b','c']]]
final = []
for pair in data:
    if pair == ['var', 'list'] :
        final.append(pair)
    else:
        for entry in pair[1]:
            final.append([pair[0], entry])
print(final)