大きなリストを複数の組み合わせに分割することに問題があります。次に例を示します。リストのサブリストを他のサブリストに分割する
だが、私はこのリストを持っているとしましょう:
x = [['a','b'],['c','f'],['q','w','t']]
と私は
x = [['a','b'],['c','f'],['q','w'],['q','t'],['w','t']]
で終わるしたいので、基本的に
['q','w','t']
が
なり['q','w'],['q','t'],['w','t']
は、私はitertoolsの組み合わせで
['q','w','t']
[['q','w'],['q','t'],['w','t']] #notice the extra brackets
に変換することができます方法を見て、その後私は、私が欲しいものではありませんどの
x = [['a','b'],['c','f'],[['q','w'],['q','t'],['w','t']]] #notice the extra brackets
で立ち往生しています。
私はこれをどのようにしたらよいでしょうか?
EDIT:
from itertools import combinations
x = [['a','b'],['c','f'],['q','w','t']]
new_x = []
for sublist in x:
if len(sublist) == 2:
new_x.append(sublist)
if len(sublist) > 2:
new_x.append([list(ele) for ele in (combinations(sublist,2))])
は、私は、一般的に平らにするために、ネストされたリストの内包表記を使用してあなたに
2番目の 'append(...)'を 'extend(...) 'に変更するだけです。 –
ありがとうgnibbler、それは役に立ちました! – Akavall