長さが等しくないリストの Python 的インターリービング
長さの異なる 2 つのリストを織り交ぜる Python 的ソリューションは、提供されたループよりも効率的かつ洗練されています。アプローチ。スライスを利用することで、このタスクは 1 行のコードで実行できます。
次の例を考えてみましょう。最初のリストには 2 番目のリストより 1 つ多い項目が含まれています。
list1 = ['f', 'o', 'o'] list2 = ['hello', 'world']
望ましい出力は次のとおりです:
['f', 'hello', 'o', 'world', 'o']
スライスを使用すると、これは次のように実現できます。
result = [None]*(len(list1)+len(list2)) result[::2] = list1 result[1::2] = list2
このアプローチでは、両方の入力リストの要素を収容するのに十分なスペースを持つ新しいリスト、結果が作成されます。スライス演算子 [::2] および [1::2] は、1 つおきの要素を対応する入力リストに割り当てます。
結果は、両方の入力リストの要素を必要に応じて交互に配置した新しいリストです。この方法は、ループ手法よりも簡潔で効率的で、Python 的です。
以上がPython で不等長リストを効率的にインターリーブするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。