0

順序付けられた辞書のリストがあります。

すべての辞書の最初の値をキーに設定し、辞書自体を値 (名前を含む) に設定し、新しいリストを返します。

data = [
    OrderedDict(
        [('Name', 'Tel saki'), ('Area', '210'), ('Latitude', 32.866477), ('Longitude', 35.830773), ('elevation', 481),
         ('date_added', '13-03-2020')]),
    OrderedDict(
        [('Name', 'Mitzphe shelagim'), ('Area', '210'), ('Latitude', 33.30445), ('Longitude', 35.797814),
         ('elevation', 2110), ('date_added', '29-03-2020')]), OrderedDict(
        [('Name', 'Mitzphe adi'), ('Area', '769'), ('Latitude', 33.2253981), ('Longitude', 35.5495681),
         ('elevation', 680),
         ('date_added', '17-03-2020')]),
    OrderedDict(
        [('Name', 'Nhahal Oz'), ('Area', '300'), ('Latitude', 31.4762228), ('Longitude', 34.4974832),
         ('elevation', 68),
         ('date_added', '30-03-2020')]),
    OrderedDict(
        [('Name', '105'), ('Area', '210'), ('Latitude', 33.220439), ('Longitude', 35.808097), ('elevation', 1127),
         ('date_added', '07-04-2020')]),
    OrderedDict(
        [('Name', 'Ifthah'), ('Area', '300'), ('Latitude', 31.5487777), ('Longitude', 34.4873539), ('elevation', 29),
         ('date_added', '08-04-2020')])]

私のコード:


class RepackDictionaries:
    index = 0

    @classmethod
    def return_values_lists(cls):
        while cls.index < len(data):
            names = list(data[cls.index].values())[0]
            data_sets = [data[cls.index].values()]
            cls.index += 1
            return names, data_sets

    @classmethod
    def create_new_dicts(cls):
        names, data_sets = cls.return_values_lists()
        data = list(zip(names, data_sets))
        while cls.index < len(data):
            final_list = {name: data_set for name, data_set in data}
            cls.index += 1
            return final_list


if __name__ == '__main__':
    print(RepackDictionaries.create_new_dicts())

どちらが None に出力され、その理由がわかりません。

4

2 に答える 2