|
25鱼币
输入
data = """
03011MEA23EM002------ADI1R,03011MEA23EM001------ADI1R
03021MEA23EM002------ADI1R,03021MEA23EM001------ADI1R
03031MEA23EM002------ADI1R,03031MEA23EM001------ADI1R
03041MEA23EM002------ADI1R,03041MEA23EM001------ADI1R
03052MEA23EM002------ADI1LOC,03052MEA23EM001------ADI1R
03062MEA23EM002------ADI1LOC,03062MEA23EM001------ADI1R
03072MEA23EM002------ADI1LOC,03072MEA23EM001------ADI1R
03082MEA23EM002------ADI1LOC,03082MEA23EM001------ADI1R
"""
输出结果:
<1>所有的数据共有部分:
030[0]MEA23EM002------ADI1[1],030[2]MEA23EM001------ADI1R
<2>每条数据不一样的元素
11,R,11
21,R,21
31,R,31
41,R,41
52,LOC,52
62,LOC,62
72,LOC,72
82,LOC,82
这个是数据要进行清洗,我自己好多边都没实现。
030[0]MEA23EM002------ADI1[1],030[2]MEA23EM001------ADI1R,这个是数组里的通配公式。里面的[0][1][2]就是纯粹的占位符。
例如把11,R,11代入通配公式,就能得到数组里第一条数据,依次类推。
有没有同学能不能帮我写个python,用来清洗数据。输出的结果,第一要有通配公式,第二,就是要有数组里的每条数据不同的值。
- import re
- data = """
- 03011MEA23EM002------ADI1R,03011MEA23EM001------ADI1R
- 03021MEA23EM002------ADI1R,03021MEA23EM001------ADI1R
- 03031MEA23EM002------ADI1R,03031MEA23EM001------ADI1R
- 03041MEA23EM002------ADI1R,03041MEA23EM001------ADI1R
- 03052MEA23EM002------ADI1LOC,03052MEA23EM001------ADI1R
- 03062MEA23EM002------ADI1LOC,03062MEA23EM001------ADI1R
- 03072MEA23EM002------ADI1LOC,03072MEA23EM001------ADI1R
- 03082MEA23EM002------ADI1LOC,03082MEA23EM001------ADI1R
- """
- lines = data.strip().split('\n')
- common_tmp = r'030(\d{2})MEA23EM002------ADI1([A-Z]+),030(\d{2})MEA23EM001------ADI1R'
- pattern = re.compile(common_tmp)
- print("匹配公式:", common_tmp)
- unique_parts = []
- for line in lines:
- match = pattern.match(line)
- if match:
- unique_parts.append(', '.join(match.groups()))
- print("\n获取不同数据结果: ")
- for part in unique_parts:
- print(part)
复制代码
|
|