与えられた:リストなどのリスト[[3,2,1], [3,2,1,4,5], [3,2,1,8,9], [3,2,1,5,7,8,9]]
Todo:すべてのサブリストの中で最も長い共通プレフィックスを見つけます。
存在する:別のスレッド「Pythonでセットを使用しない2つのリスト間の共通要素」では、Python2.7より上で使用可能な「Counter」を使用することをお勧めします。ただし、現在のプロジェクトはpython 2.6で記述されているため、「Counter」は使用されません。
私は現在、次のようにコーディングしています。
l = [[3,2,1], [3,2,1,4,5], [3,2,1,8,9], [3,2,1,5,7,8,9]]
newl = l[0]
if len(l)>1:
for li in l[1:]:
newl = [x for x in newl if x in li]
しかし、私はそれがあまりPythonicではないと思います、コーディングのより良い方法はありますか?
ありがとう!
新しい編集:申し訳ありませんが、私の場合、「l」のリストの共有要素は同じ順序であり、常に0番目の項目から始まります。だからあなたは次のようなケースはありません[[1,2,5,6],[2,1,7]]