2017-10-30 9 views
2

リスト内の2つの異なるタイプの要素をマージするソリューションを見つけるのが苦労しています。pythonでlistの要素をconditionにマージするには?

list_i = ['teacher', '10', 'student', '100', 'principle', '2'] 

結果:

list_1 = ['teacher:10', 'student:100', 'principle:2'] 

すべてのヘルプは大歓迎です!

+0

どこに正確に貼り付けられていますか? 2で反復する?文字列を扱う? –

答えて

5

これは動作します:

[list_i[i] + ":" + list_i[i+1] for i in range(0, len(list_i), 2)] 

をこれが生成します。コード

[':'.join(item) for item in zip(list_i[::2],list_i[1::2])] 

これはちょうど2つの部分でリストをスライスし、ジップでそれらを結合します、次の

['teacher:10', 'student:100', 'principle:2'] 
+0

ありがとう、それは動作します。 – dlfjj

5

使用

+0

ありがとう、私はそれを試してみてください。できます。 – dlfjj

0

代わりにもmore_itertoolsに実装されてgrouperitertools recipeを、適用

> pip install more_itertools 

コード

import more_itertools as mit 


iterable = ['teacher', '10', 'student', '100', 'principle', '2'] 

[":".join(i) for i in mit.windowed(iterable, 2, step=2)] 
# ['teacher:10', 'student:100', 'principle:2'] 

more_itertools、サードパーティのライブラリを使用して、sliding window技術を適用することができます。

[":".join(i) for i in mit.grouper(2, iterable)] 
# ['teacher:10', 'student:100', 'principle:2'] 
関連する問題