首页 > 解决方案 > 转换字典中的列表

问题描述

我需要在字典中转换列表 detail_flights。在列表的一部分之后(它更长,但结构始终相同):

detail_flights = ['22:20 – 23:55\nBGY Bergamo Orio al Serio\n‐\nBCN Barcellona-El Prat\ndiretto\n1h 35m\n6:20 – 8:00\nBCN Barcellona-El Prat\n‐\nBGY Bergamo Orio al Serio\ndiretto\n1h 40m', '22:20 – 23:55\nBGY Bergamo Orio al Serio\n‐\nBCN Barcellona-El Prat\ndiretto\n1h 35m\n12:05 – 13:45\nBCN Barcellona-El Prat\n‐\nBGY Bergamo Orio al Serio\ndiretto\n1h 40m']

我想将列表的所有信息放在以下标题中:

detail_headers = ['departure_time', 'departure_airport', 'to_delete', 'arrival_airport', 'type_flight', 'duration']

我想获得这样的东西:

detail_flights = [{'departure_time': '22:20 – 23:55', 'departure_airport': 'BGY Bergamo Orio al Serio', 'to_delete': '-', 'arrival_airport': 'BCN Barcellona-El Pra', 'type_flight': 'diretto', 'duration': '1h 35', 'departure_time': '6:20 – 8:00', 'departure_airport': 'BCN Barcellona-El Prat', 'arrival_airport': 'BGY Bergamo Orio al Serio', 'type_flight': 'diretto', 'duration': '1h 40m'}, {....}]

这是我的代码:

def listToString(s): 
    str1 = " " 
    return (str1.join(detail_flights))
        
detail_flights = listToString(detail_flights)
detail_flights = detail_flights.split(sep='\n')

from itertools import zip_longest
detail_headers = ['departure_time', 'departure_airport', 'to_delete', 'arrival_airport', 'type_flight', 'duration']
d1=zip_longest(detail_headers,detail_flights)
print (dict(d1))

这是我的输出,它不能正常工作:

{'departure_time': '22:20 – 23:55', 'departure_airport': 'BGY Bergamo Orio al Serio', 'to_delete': '‐', 'arrival_airport': 'BCN Barcellona-El Prat', 'type_flight': 'diretto', 'duration': '1h 35m', None: '1h 45m'}

标签: pythonstringlistdictionary

解决方案


detail_flights = ['22:20 – 23:55\nBGY Bergamo Orio al Serio\n‐\nBCN Barcellona-El Prat\ndiretto\n1h 35m\n6:20 – 8:00\nBCN Barcellona-El Prat\n‐\nBGY Bergamo Orio al Serio\ndiretto\n1h 40m', '22:20 – 23:55\nBGY Bergamo Orio al Serio\n‐\nBCN Barcellona-El Prat\ndiretto\n1h 35m\n12:05 – 13:45\nBCN Barcellona-El Prat\n‐\nBGY Bergamo Orio al Serio\ndiretto\n1h 40m']
    
detail_headers = ['departure_time', 'departure_airport', 'to_delete', 'arrival_airport', 'type_flight', 'duration']
dictionary = dict(zip(detail_flights , detail_headers ))

print(dictionary)

输出:

{'22:20 – 23:55\nBGY Bergamo Orio al Serio\n‐\nBCN Barcellona-El Prat\ndiretto\n1h 35m\n6:20 – 8:00\nBCN Barcellona-El Prat\n‐\nBGY Bergamo Orio al Serio\ndiretto\n1h 40m': 'departure_time', '22:20 – 23:55\nBGY Bergamo Orio al Serio\n‐\nBCN Barcellona-El Prat\ndiretto\n1h 35m\n12:05 – 13:45\nBCN Barcellona-El Prat\n‐\nBGY Bergamo Orio al Serio\ndiretto\n1h 40m': 'departure_airport'}

推荐阅读