Зацикливание списка (с подсписками) и присвоение соответствующих идентификаторов одному и тому же ключу и всем соответствующим значениям из этого подсписка? - PullRequest
0 голосов
/ 09 мая 2019

Я довольно новичок в кодировании на Python и не могу решить следующую проблему:

У меня есть список с точками слежения для разных животных (ID, дата, время, широта, долгота) в строках:

aList = [[id,date,time,lat,lon],
         [id2,date,time,lat,lon],
         [...]]

Текстовый файл очень большой, и идентификаторы (уникальное животное) встречаются несколько раз:

, то есть:

aList = [['25','20-05-13','15:16:17','34.89932','24.09421'],
         ['24','20-05-13','15:16:18','35.89932','23.09421], 
         ['25','20-05-13','15:18:15','34.89932','24.13421'],
         [...]]

Что япопытка сделать это - упорядочить идентификаторы в словарях, чтобы каждый уникальный идентификатор был ключом, а все даты, время, широта и долгота - значениями.Затем я хотел бы записать каждый отдельный идентификатор в новый текстовый файл, чтобы все значения для конкретного идентификатора были в одном текстовом файле.Вывод должен выглядеть следующим образом:

{'25':['20-05-13','15:16:17','34.89932','24.09421'],
      ['20-05-13','15:18:15','34.89932','24.13421'],
      [...],
 '24':['20-05-13','15:16:18','35.89932','23.09421'],
      [...]
}

Я пробовал следующее (и множество других решений, которые не работали):

items = {}
for line in aList:
    key,value = lines[0],lines[1:]
    items[key] = value

, что приводит к ключу споследнее значение в списке после определенного ключа:

{'25':['20-05-13','15:18:15','34.89932','24.13421'],
 '24':['20-05-13','15:16:18','35.89932','23.09421']}

Как я могу пройтись по списку и назначить одинаковые идентификаторы одному и тому же ключу и всем соответствующим значениям? Есть ли какие-либопростое решение этого?Другие "более простые в реализации" решения приветствуются!

Надеюсь, это имеет смысл:)

1 Ответ

0 голосов
/ 09 мая 2019

Попробуйте добавить все списки, которые соответствуют одному и тому же идентификатору, что и список списков:

aList = [['25','20-05-13','15:16:17','34.89932','24.09421'],
         ['24','20-05-13','15:16:18','35.89932','23.09421'],
         ['25','20-05-13','15:18:15','34.89932','24.13421'],
         ]

items = {}
for line in aList:
    key,value = line[0],line[1:]
    if key in items:
        items[key].append(value)
    else:
        items[key] = [value]

print items

ВЫХОД:

{'24': [['20-05-13', '15:16:18', '35.89932', '23.09421']], '25': [['20-05-13', '15:16:17', '34.89932', '24.09421'], ['20-05-13', '15:18:15', '34.89932', '24.13421']]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...