为了账号安全,请及时绑定邮箱和手机立即绑定

将值分组到列表中

将值分组到列表中

白猪掌柜的 2021-03-02 14:17:36
鉴于此列表:['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']它也需要分组。您能提供一些整洁的解决方案吗?
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

采取以下假设:

  • 单词仅是字母字符串

  • 一个块以k个单词开头,k> = 1(显然是两个)

  • 列表元素的数据部分中没有单词

一种方法是按单词和数据分组,然后建立列表理解以将对配对:

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]


查看完整回答
反对 回复 2021-03-29
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信