2016-11-17 11 views
0

次のことを達成するためにどのようなpythonic方法があるのだろうか。私がリストを持っていると仮定します。リストの要素のペアを連続して連結する

days = ['m', 't', 'w', 'r', 'f', 's', 's'] 
のように私はなりリストを取得したいと思います

:それはイテレータとして元のリストを処理し、実行するために移動しなければならないので、

['t-m', 'w-t', 'r-w', 'f-r', 's-f', 's-s'] 

連結。

私はこれは、これまでiter()機能のリスト内包と使用のいくつかの並べ替えが、私の試みで運を通じて達成することができると思います!私はPython 2.7を使用しています。 、列挙と

>>> days = ['m', 't', 'w', 'r', 'f', 's', 's'] 
>>> ['-'.join(pair) for pair in zip(days[1:], days)] 
['t-m', 'w-t', 'r-w', 'f-r', 's-f', 's-s'] 

答えて

4

リスト内包でスライスdays[1:]とオリジナルdays、と使用zip()、逆に素子対のスライディングウィンドウを反復処理します

>>> days = ['m', 't', 'w', 'r', 'f', 's', 's'] 
>>> ['{}-{}'.format(days[n+1], i) for n,i in enumerate(days[:-1])] 
['t-m', 'w-t', 'r-w', 'f-r', 's-f', 's-s'] 
0

使用リストの内包最後の項目を除外リストを反復処理:

関連する問題