将.csv到达延迟时间值与表示航班公司的键相关联。

2024-04-20 13:04:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个机场项目。你知道吗

我有一份关于航空公司代码,目的地机场和到达延误的文件。你知道吗

我正在尝试生成一个字典,其中键是航空公司代码,值是一个包含该航空公司到达延迟的列表。你知道吗

这是我目前的代码:

def collects_statistics(statistics):
flights = []
flights_with_time = OrderedDict()
with open(statistics, 'rU') as file1:
    reader1 = csv.DictReader(file1)
    for flight in file1:
        if flight['AIRLINE_ID'] not in flights_with_time:
            flights_with_time[flight['AIRLINE_ID']] = []
# Don't know what to do next.
# Want to put the delays of each airline in the flights_with_time[flight['AIRLINE_ID']]

return voos_com_tempo

http://i.imgur.com/Wzn7CGN.png

这就是我告诉你们的文件。你知道吗

例如,对于航空公司代码为19393的航班,我要[19393年的所有到达延迟],对于航空公司代码为19690的航班,我要[19690年的所有到达延迟],依此类推。你知道吗

我真的很难做到这一点。这个想法在我脑子里很清楚,只是无法付诸实施。你知道吗


Tags: 文件theto代码inidtimewith
3条回答

如果航班id已经作为dictionary键存在,您需要在列表中附加延迟时间,该延迟时间将位于该航班id键的值中。。。我想到了这个。你知道吗

def collects_statistics(statistics):
    flights = []
    flights_with_time = OrderedDict()
    with open(statistics, 'rU') as file1:
        reader1 = csv.DictReader(file1)
        for flight in file1:
            if flight['AIRLINE_ID'] not in flights_with_time:
                flights_with_time[flight['AIRLINE_ID']] = []
            else:
                flights_with_time[flight['AIRLINE_ID']].append(flight['ARR_DELAY_NEW'])

你90%的时间你现在只需要添加到列表中:

    def collects_statistics(statistics):
        flights = []
        flights_with_time = OrderedDict()
        with open(statistics, 'rU') as file1:
            reader1 = csv.DictReader(file1)
            for flight in file1:
            if flight['AIRLINE_ID'] not in flights_with_time:
                flights_with_time[flight['AIRLINE_ID']] = []

            #add the flight delay to the list
            flights_with_time[flight['AIRLINE_ID']].append(flight['ARR_DELAY_NEW'])

        return flights_with_time

使用SetDefault,这是一种简单的方法。你知道吗

def collects_statistics(statistics):
    flights_with_time = OrderedDict()
    with open(statistics, 'rU') as file1:
        reader1 = csv.DictReader(file1)
        for flight in file1:
            AIPORT_CODE = flight['AIRLINE_ID']
            flights_with_time.setdefault(AIPORT_CODE, []).append(flight['ARR_DELAY_NEW'])

    return flights_with_time

相关问题 更多 >