2017-05-18 2 views
-3

좋은 하루. 네 도움이 필요해. 아래에 두 개의 목록이 있습니다.목록의 요소를 다른 목록에 추가

List_1= [ 
    'Sta  Pno  Azimuth  Distance  Latitude  Departure ', 
    'T1  X  170.7011111 22.236  21.9438  -3.593 ', 
    'T1  X  170.0  20.0   19.6962  -3.473 ', 
    'T2  X  30.22833333 6.083  -5.2559  -3.0625 ', 
    'T3  X  154.5155556 98.212  88.6562  -42.2573 ', 
    'T4  CHB  351.4977778 93.637  -92.6079  13.844 ', 
    '' ] 

List_2= [ 
    'Sta  Northing  Easting ', 
    'T1  2000   2000  ', 
    'T2  1500   1600  ', 
    'T3  2400   2200  ', 
    'T4  2600   2800  ', 
    '' ] 

나는 첫 번째 목록에 방송국의 북쪽 및 동쪽으로 연결하고 싶습니다. 도와주세요. 지금까지 내가 지퍼 기능을 사용하려고 시도하고 두 목록을 결합하지만 문제는 다른 요소에 일치하는 참조로 요소의 일부를 사용하여 요소를 다른 요소에 일치시키는 방법을 모르겠다.

+0

스택 오버플로에 대한 질문을하는 방법에 대한 섹션을 살펴보아야합니다. –

+0

시도해 보았던 것을 보여주고 계속 붙잡은 것에 대해 자세히 설명해주십시오. 그래서 사람들이 코드를 작성하도록 웹 사이트가 아닙니다. – Antimony

+0

[도움말 센터] (http://stackoverflow.com/help)의 [좋은 질문이 있습니까?] (http://stackoverflow.com/help/how-to-ask)를 참조하십시오. –

답변

0
# deal with headings separately from rest of data. 
# also split each heading into a list of string rather than single string. 
l1_headings, l2_headings = List_1.pop(0).split(), List_2.pop(0).split() 
# put each row of List_1 in a list of dictionary using headings as keys 
l1_dicts = [{k:v for k, v in zip(l1_headings, row.split())} for row in List_1 if row != ''] 
# put each row of List_2 in a dictionary of dictionaries indexed by 'Sta' 
l2_by_Sta = {} 
for row in List_2: 
    if row == '': continue 
    d = {k:v for k, v in zip(l2_headings, row.split())} 
    l2_by_Sta[d['Sta']] = d 
# update l1_dicts from data in l2_by_Sta 
for d in l1_dicts: 
    d.update(l2_by_Sta[d['Sta']]) 

l1_dicts 이제 포함

[{'Azimuth': '170.7011111', 
    'Departure': '-3.593', 
    'Distance': '22.236', 
    'Easting': '2000', 
    'Latitude': '21.9438', 
    'Northing': '2000', 
    'Pno': 'X', 
    'Sta': 'T1'}, 
{'Azimuth': '170.0', 
    'Departure': '-3.473', 
    'Distance': '20.0', 
    'Easting': '2000', 
    'Latitude': '19.6962', 
    'Northing': '2000', 
    'Pno': 'X', 
    'Sta': 'T1'}, 
{'Azimuth': '30.22833333', 
    'Departure': '-3.0625', 
    'Distance': '6.083', 
    'Easting': '1600', 
    'Latitude': '-5.2559', 
    'Northing': '1500', 
    'Pno': 'X', 
    'Sta': 'T2'}, 
{'Azimuth': '154.5155556', 
    'Departure': '-42.2573', 
    'Distance': '98.212', 
    'Easting': '2200', 
    'Latitude': '88.6562', 
    'Northing': '2400', 
    'Pno': 'X', 
    'Sta': 'T3'}, 
{'Azimuth': '351.4977778', 
    'Departure': '13.844', 
    'Distance': '93.637', 
    'Easting': '2800', 
    'Latitude': '-92.6079', 
    'Northing': '2600', 
    'Pno': 'CHB', 
    'Sta': 'T4'}] 

텍스트 파일 사용 csv.DictWriter이 데이터를 작성해야합니다.

+0

와우 완벽하게 작동했습니다. 고맙습니다! 사전 목록으로 변환 할 계획 이었지만 불행히도 내가 한 일과 같은 결과를 줄 수있는 코드는 없습니다. 정말로 위대한 선생님. 정말 고맙습니다. – Gjan21

관련 문제