鉴于此清单:
['IND', 'MIA', '06:37 AM', '103', 'LA', 'SUN', '06:49 AM', '-150', '120']
我想将列表(make tuples)分组为最终结果:
[('IND', 'MIA', '06:37 AM', '103'), ('LA', 'SUN', '06:49 AM', '-150', '120')]
意味着一个组是一个以单词开头的值列表(实际上总会有2个连续的单词),这里:IND
后跟一些其他值,直到另一个单词,这里:{{1} }。所有单词对都可能是完美的,例如这将是有效的列表:
LA
它也需要分组。你能提供一些整洁的解决方案吗?
答案 0 :(得分:3)
采取假设:
一种方法是按字和数据分组,然后构建列表理解以加入对:
import itertools as it
data = ['IND', 'MIA', '06:37 AM', '103', 'LA', 'SUN', '06:49 AM', '-150', '120']
g = it.groupby(data, str.isalpha)
[tuple(v)+tuple(next(g)[1]) for _, v in g]