1. ホーム
  2. python

[解決済み] 2つのリストを交互に組み合わせるPythonicな方法とは?

2022-11-26 13:59:33

質問

2つのリストがあります。 があり、最初のリストには2番目のリストよりちょうど1つ多く項目が含まれていることが保証されています。 . 私は、偶数インデックスの値が最初のリストから来て、奇数インデックスの値が2番目のリストから来る新しいリストを作成するための最もPythonicな方法を知りたいです。

# example inputs
list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']

# desired output
['f', 'hello', 'o', 'world', 'o']

これは動作しますが、きれいではありません。

list3 = []
while True:
    try:
        list3.append(list1.pop(0))
        list3.append(list2.pop(0))
    except IndexError:
        break

他にどのようにすれば実現できますか?最もPythonicなアプローチは何でしょうか?

どのように解決するのですか?

スライスによる方法の一つを紹介します。

>>> list1 = ['f', 'o', 'o']
>>> list2 = ['hello', 'world']
>>> result = [None]*(len(list1)+len(list2))
>>> result[::2] = list1
>>> result[1::2] = list2
>>> result
['f', 'hello', 'o', 'world', 'o']