リストの要素のペアを結合する [重複] 質問する

リストの要素のペアを結合する [重複] 質問する

次のようにリストを結合して 1 つの長い文字列を作成できることは知っています。

x = ['a', 'b', 'c', 'd']
print ''.join(x)

明らかに、これは次のように出力されます:

'abcd'

ただし、私がやろうとしているのは、リスト内の最初の文字列と 2 番目の文字列を結合し、次に 3 番目と 4 番目の文字列を結合するだけです。つまり、上記の例では、代わりに次の出力が得られます。

['ab', 'cd']

これを実行する簡単な方法はありますか? また、リスト内の文字列の長さは予測不可能であり、リスト内の文字列の数も予測不可能ですが、文字列の数は常に偶数であることにも言及しておく必要があります。したがって、元のリストは次のようになります。

['abcd', 'e', 'fg', 'hijklmn', 'opq', 'r'] 

ベストアンサー1

ステップでスライス表記を使用できます:

>>> x = "abcdefghijklm"
>>> x[0::2] #0. 2. 4...
'acegikm'
>>> x[1::2] #1. 3. 5 ..
'bdfhjl'
>>> [i+j for i,j in zip(x[::2], x[1::2])] # zip makes (0,1),(2,3) ...
['ab', 'cd', 'ef', 'gh', 'ij', 'kl']

同じロジックがリストにも適用されます。単に 2 つの文字列を追加するだけなので、文字列の長さは関係ありません。

おすすめ記事