如何在条件中合并python中列表中的元素?

时间:2017-10-30 07:30:35

标签: python list

我很难找到合并列表中两种不同类型元素的解决方案。

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

结果:

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

非常感谢任何帮助!!

3 个答案:

答案 0 :(得分:6)

这将有效:

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

这会产生:

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

答案 1 :(得分:5)

使用以下代码

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

这只是将列表分为两部分,并用zip

连接

答案 2 :(得分:0)

使用more_itertools,第三方库,您可以应用sliding window技术:

> 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']

或者应用grouper itertools recipe,这也在more_itertools中实施。

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