将值分组到列表中

鉴于此列表:

['IND', 'MIA', '06:37 AM', '103', 'LA', 'SUN', '06:49 AM', '-150', '120']

我想将最终结果的列表分组(组成元组):

[('IND', 'MIA', '06:37 AM', '103'), ('LA', 'SUN', '06:49 AM', '-150', '120')]

含义组是一个以单词开头的值的列表(实际上总是有2个连续的单词),在这里:IND之后是一些其他值,直到另一个单词,在这里:LA。所有单词对可能都是身份证的,例如,这将是有效列表:

['IND', 'MIA', '06:37 AM', '103', 'IND', 'MIA', '06:49 AM', '-150', '120']

它也需要分组。您能提供一些整洁的解决方案吗?


白猪掌柜的
浏览 88回答 1
1回答

UYOU

采取以下假设:单词仅是字母字符串一个块以k个单词开头,k> = 1(显然是两个)列表元素的数据部分中没有单词一种方法是按单词和数据分组,然后建立列表理解以将对配对:import itertools as itdata = ['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]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python