首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将列表分组到特定的组中

将列表分组到特定的组中
EN

Stack Overflow用户
提问于 2019-11-13 18:35:36
回答 2查看 64关注 0票数 0

我想知道是否有可能将列表转换为特定的组,稍后我可以将它们放在表格格式中。

这是我需要分组的输出,我将它们转换成一个列表,这样我就可以很容易地以表格的方式对它们进行划分。

代码语言:javascript
运行
复制
f=open("sample1.txt", "r")
f.read()

下面是输出:

代码语言:javascript
运行
复制
'0245984300999992018010100004+14650+121050FM-12+004699999V0203001N00101090001CN008000199+02141+01971101171ADDAY141021AY241021GA1021+006001081GA2061+090001021GE19MSL   +99999+99999GF106991021999006001999999KA1120N+02111MD1210141+9999MW1051REMSYN10498430 31558 63001 10214 20197 40117 52014 70544 82108 333 20211 55062 56999 59012 82820 86280 555 60973=\n'

这是我已经做过的事情。我已经成功地将其更改为一个列表,从而产生了以下输出:

代码语言:javascript
运行
复制
with open('sample1.txt', 'r') as file:
data = file.read().replace('\n', '')
print (list(data))

输出:

'0','2','4','5','9','8','4','3','0','0','9','9','9','9','2','0','1','8','0','1','1',‘1’,'0','0','0',‘0’'0','4','+','1','4','6','5','0','+','1','2','1','0','5','0','F','M','-','1','2','+','0','0','4','6','9','9','9','9','9','V','0','2','0','3','0','0','1','N','0','0','1','1','0','0','9','0','0','0','1','C','N','0','0','8','0','0','0','1','9','9','+','0','2','1','4','1','+','0','1','9','7','1','1','0','1','1','7',“1”,“A”,“D”,“D”,“A”,“Y”,“1”,“4”,“1”,“0”,“2”,“1”,“A”,“Y”,“2”,“4”,“1”,“0”,“2”,“1”,“G”,“A”,“1”,“0”,“2”,“1”,'+','0','0','6','0','0','1','0','8','1','G','A','2','0','6','1','+','0','9','0','0','0','1','0','2','1','G','E','1','9','M','S','L','+','+','9','9',‘+ ','9','9',’+ ','9','9','9','9','G','F','1','0','6','9','9','1','0','2','1','9','9','9','9','0','0','6','0','0','1','9','9','9','9','9','K','A','1','1',“2”,“0”,“N”,“+”,“0”,“2”,“1”,“1”,“1”,“M”,“D”,“1”,“2”,“1”,“0”,“1”,“4”,“1”,“+”,“9”,“9”,“9”,“M”,“W”,“1”,'0','5','1','R','E','M','S','Y','N','1','0','4','9','8','4','3','0',‘','3','1','5','5','8',’','6','3','0','0','1','1','0','2','1','4',‘','2','0','1','1','9','7',’','4','0','1','1','7',‘','5','2','0',’1‘'4',‘','7','0','5','4','4','8','2','1','0','8','3','3','3',’3 ','2','2','1','1',‘','5','5','0','6','2',‘','5','6','9','9','9',’','5','9','0','1','2',‘','8','8','2','2','2','8','6',’2 ','8','0',‘','5','5',’','6','0','9','7','3','=‘

我的目标是将它们分成以下几类:

代码语言:javascript
运行
复制
0245,984300,99999,2018,01,01,0000,4,+1.... 

属于每一列的位数是预先确定的,例如,第一列总是有4位,第二列总是有6位,依此类推。

我在考虑把它们连接起来。但我不确定这是否可能。

EN

Stack Overflow用户

发布于 2019-11-13 19:11:23

您可以使用operator.itemgetter

代码语言:javascript
运行
复制
from operator import itemgetter

g = itemgetter(slice(0, 4), slice(4, 10))
with open('sample1.txt') as file:
    for line in file:
        print(g(line))

或者更好的是,您可以使用zip和itertools.accumulate动态地制作切片

代码语言:javascript
运行
复制
indexes = [4, 6, ...]
g = itemgetter(*map(slice, *map(accumulate, zip([0]+indexes, indexes))))

然后继续进行之前的操作

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58835192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档