|
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)
|
|