gpt4 book ai didi

python将列表列拆分为原始列表中的多列

转载 作者:太空宇宙 更新时间:2023-11-04 09:10:48 25 4
gpt4 key购买 nike

我有一个列表,其中包含许多本身就是列表的条目。以下是主列表中的一些子列表:

>>> data[4]
['', u'BNE JCT TR92 FLO GRJCT-PERRY-BITTERSWEET', u'BNE_JCT TR92 TR92 (XF/ALTW/*)', u'KARMA-PERRY-BITTERSWEET_161', u' 01', -15.88, '']
>>> data[5]
['', u'CRETE-STJHN FLO DMNT-WLTN 765+SPS', u'ST_JOHN 34519 A (LN/NIPS/CE)', u'SPS WILTON-DUMONT+PWRTN 5+JOLIET 7', u' 01', -8.14, '']
>>> data[6]
['', u'HRNR_TR_1_TR_1_XF', u'HRNR TR_1 TR_1 (XF/AMMO/*)', '', u' 01', 1.4, '']
>>> data[7]
['', u'INDPDN INDPDBRYAN69_11 LN', u'INDPDN INDPDBRYAN69_1 1 (LN/ALTW/ALTW)', u'ACTUAL', u' 01', 1.26, '']
>>>

我想将子列表中的第 3 列拆分为 4 个部分,如下所示:

  • 从第一个字符到最后一个非空格字符的所有字符串
  • 封装在(/之间的字符串>
  • 封装在//之间的字符串>
  • 封装在/)之间的字符串

所以我想要同一个列表,但如上所述将第 3 列分成 4 列。

例子:

['', u'BNE JCT TR92 FLO GRJCT-PERRY-BITTERSWEET', u'BNE_JCT TR92 TR92', u'XF',u'ALTW','*', u'KARMA-PERRY-BITTERSWEET_161', u' 01', -15.88, '']

我也不确定元素前面的 u 代表什么。我一直在搞乱 re.split() 但一直没能使它正常工作以保留原始列表但将子列表的第 3 列拆分为 4 个附加列。

感谢您的帮助。

[我进行了编辑以删除 arraylist 并将其替换为列表]**

最佳答案

这是一个正则表达式模式,它将匹配您想要的字符串部分:

pattern = r"(.+) \((.+)/(.+)/(.+)\)"

这可能是最简单的正则表达式。

使用方法如下:

import re

for row in data:
row[2:3] = re.match(pattern, row[2]).groups()

那里发生了很多事情。外循环很容易理解。内部有两部分:

  1. re.match(pattern, row[2]).groups() 执行正则表达式匹配,并返回找到的值的元组(例如 ('BNE_JCT TR92 TR92', 'XF', 'ALTW', '*')).
  2. 第二位是切片赋值。 row[slice] = some_sequencesome_sequence 中的值替换指定的切片。如果序列中的值数量与切片中的值数量不同,列表将改变大小!在这种情况下,我们将用从正则表达式匹配中获得的四个值替换单值切片(从索引 2 开始,在索引 3 之前停止)。

请注意,如果正则表达式与您的任何行中的值不匹配,此代码将引发异常。如果您的数据有任何可能变得“困惑”,您应该添加一些额外的逻辑来检测这种情况,而不是让它爆炸。

关于python将列表列拆分为原始列表中的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15487624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com