如何匹配和替换 listA column1 值到 ListB column2

我有 2 个列表(标题和数据值)。我想将我的数据值列 1 匹配并替换为头文件列 1 以获取与 dataValue 列 1 与标题值列 2 匹配的值


头文件


TotalLoad,M0001001

HoisePosition,X011_0001

TotalLoad1,X011_0004

TotalLoad2,X030_0008

HoisePosition2,X031_0002

GearTemprature,X032_0003

OilLevel,X033_0004

OilTemprature,X034_0005

数据价值


M0001001,50

X011_0001,100

X011_0004,45

X030_0008,35

X030_0002,80

X030_0003,100

X030_0004,200

X030_0005,60

Python


Hfile=open("header.csv",'r')

DValuef=open("DataValue.csv",'r')

hf=Hfile.readlines()

dv=DValuef.readlines()

Hfile.close()

DValuef.close()


dictA={}

dictB={}

value1=[]

value2=[]


for x in hf:

    myList1=x.strip().split(',')

    dictA={myList1[0]:myList1[1]}

    value1.append(dictA)


for y in dv:

    myList2=y.strip().split(',')

    dictB={'Vname':myList2[0],'V_Value':myList2[1]}

    print(dictB)

预期结果


{'Vname': 'TotalLoad', 'V_Value': '50'}

{'Vname': 'HoisePosition', 'V_Value': '100'}

{'Vname': 'TotalLoad1', 'V_Value': '45'}

{'Vname': 'TotalLoad2', 'V_Value': '35'}

{'Vname': 'HoisePosition2', 'V_Value': '80'}

{'Vname': 'GearTemprature', 'V_Value': '100'}

{'Vname': 'OilLevel', 'V_Value': '200'}

{'Vname': 'OilTemprature', 'V_Value': '60'}

实际结果


{'Vname': 'M0001001', 'V_Value': '50'}

{'Vname': 'X011_0001', 'V_Value': '100'}

{'Vname': 'X011_0004', 'V_Value': '45'}

{'Vname': 'X030_0008', 'V_Value': '35'}

{'Vname': 'X030_0002', 'V_Value': '80'}

{'Vname': 'X030_0003', 'V_Value': '100'}

{'Vname': 'X030_0004', 'V_Value': '200'}

{'Vname': 'X030_0005', 'V_Value': '60'}


莫回无
浏览 95回答 3
3回答

翻翻过去那场雪

for x in hf:    myList1=x.strip().split(',')    dictA[myList1[1]] = myList1[0]for y in dv:    myList2=y.strip().split(',')    dictB={'Vname':dictA[myList2[0]],'V_Value':myList2[1]}    print(dictB)这应该给你你需要的东西..但我不知道为什么你需要像这样安排数据

明月笑刀无情

你可以像下面使用列表理解来做header_file = '''TotalLoad,M0001001HoisePosition,X011_0001TotalLoad1,X011_0004TotalLoad2,X030_0008HoisePosition2,X031_0002GearTemprature,X032_0003OilLevel,X033_0004OilTemprature,X034_0005'''value_file = '''M0001001,50X011_0001,100X011_0004,45X030_0008,35X030_0002,80X030_0003,100X030_0004,200X030_0005,60'''hf = [line for line in header_file.split("\n")]dv = [line for line in value_file.split("\n") ]header_dict = {key: value for value, key in [line.split(",") for line in hf] }value_dict = [{"Vname": header_dict.get(key), "V_value": value} for key, value in [line.split(",") for line in dv] ]print(value_dict)

不负相思意

for x in hf:    myList1=x.strip().split(',')    dictA[myList1[1]] = myList1[0]for y in dv:    myList2=y.strip().split(',')    dictB[dictA[myList2[0]] : myList2[1]]print(dictB)这是更好的格式
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python