リスト内の2つの異なるタイプの要素をマージするソリューションを見つけるのが苦労しています。pythonでlistの要素をconditionにマージするには?
list_i = ['teacher', '10', 'student', '100', 'principle', '2']
結果:
list_1 = ['teacher:10', 'student:100', 'principle:2']
すべてのヘルプは大歓迎です!
リスト内の2つの異なるタイプの要素をマージするソリューションを見つけるのが苦労しています。pythonでlistの要素をconditionにマージするには?
list_i = ['teacher', '10', 'student', '100', 'principle', '2']
結果:
list_1 = ['teacher:10', 'student:100', 'principle:2']
すべてのヘルプは大歓迎です!
これは動作します:
[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']
ありがとう、それは動作します。 – dlfjj
代わりにもmore_itertools
に実装されてgrouper
itertools 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']
どこに正確に貼り付けられていますか? 2で反復する?文字列を扱う? –