1. ホーム
  2. python

[解決済み] リストの要素のペアを結合する

2023-06-06 13:21:01

質問

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

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

明らかにこれは出力されるでしょう。

'abcd'

しかし、私がやろうとしていることは、単にリストの1番目と2番目の文字列を結合し、次に3番目と4番目の文字列を結合するというものです。要するに、上記の例から、代わりに次のような出力を達成します。

['ab', 'cd']

これを行うための簡単な方法はありますか?リスト内の文字列の長さは予測不可能であり、リスト内の文字列の数も予測不可能です。したがって、元のリストも同じようになります。

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

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

スライス表記をステップで使用することができます。

>>> 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つの文字列を足しているだけだからです。