2017-09-18 5 views
0

このWebサイトでは非常に多くのリストの質問がありますが、私はまだこの権利を得ることができませんでした。Pythonのリスト操作 - ブレークアウトとトランスポーズ

リストの最初の要素は別のリストです。それを打ち破り、それを垂直に配置しようとしています。

have = [[['v', 'e', 'r', 't'], 'A', 'B', 'C', 'D'], 
     [['v', 'e', 'r', 't'], 'E', 'F', 'G', 'H']] 

want = [['v', 'A', 'B', 'C', 'D'], 
     ['e', 'A', 'B', 'C', 'D'], 
     ['r', 'A', 'B', 'C', 'D'], 
     ['t', 'A', 'B', 'C', 'D'], 
     ['v', 'E', 'F', 'G', 'H'], 
     ['e', 'E', 'F', 'G', 'H'], 
     ['r', 'E', 'F', 'G', 'H'], 
     ['t', 'E', 'F', 'G', 'H']] 

答えて

1

使用この:

have = [[['v', 'e', 'r', 't'], 'A', 'B', 'C', 'D'], 
    [['v', 'e', 'r', 't'], 'E', 'F', 'G', 'H']] 
df = pd.DataFrame(have) 

(df[0].apply(pd.Series).stack().reset_index(level=1, drop=True) 
    .to_frame() 
    .merge(df, left_index=True, right_index=True,suffixes=('','_r')) 
    .drop('0_r',axis=1).values.tolist()) 

出力:

[['v', 'A', 'B', 'C', 'D'], 
['e', 'A', 'B', 'C', 'D'], 
['r', 'A', 'B', 'C', 'D'], 
['t', 'A', 'B', 'C', 'D'], 
['v', 'E', 'F', 'G', 'H'], 
['e', 'E', 'F', 'G', 'H'], 
['r', 'E', 'F', 'G', 'H'], 
['t', 'E', 'F', 'G', 'H']] 
+0

おかげスコット!素晴らしい答えと私のために働いた。 – Josh

+0

私はそれを答えとしてマークしました。これらのファンタム・ダウン投票で何が起こったのか分からない。 – Josh