Я пытаюсь объединить множество списков вместе на основе общего индекса. Общий индекс - это юлианская дата (JD), и я хотел бы объединить все остальные времена в других списках, которые используют один JD в один список, содержащий единственный JD и все соответствующие времена. Тем не менее, я продолжаю получать индексы «TypeError: list должны быть целыми, а не кортежем», и я не уверен, почему это происходит. Я не изначально назначаю переменную «list_of_lsts» фактический список списков, или я беспорядок где-то в моем цикле. Мой конечный результат был бы следующим:Группировка списков в Python
['2014-158', '20:07:11.881', '20:43:04.546', '20:43:47.447', '21:11:08.997', '21:11:16.697', '21:22:07.717']
['2014-163', '17:12:09.071', '17:38:08.219', '17:38:28.310', '17:59:25.649','18:05:59.536', '18:09:53.243','18:13:47.671', '18:16:53.976', '18:20:31.538', '18:23:02.243']
Я буду делать это для многих юлианских дат, поэтому цикл необходим. Я новый программист и, прежде всего, новичок в Python 2.7.8, поэтому, пожалуйста, простите невежество и обильные ошибки. Спасибо.
lst_of_lsts = (['2014-158', '20:07:11.881', '20:43:04.546']
['2014-158', '20:43:47.447', '21:11:08.997']
['2014-158', '21:11:16.697', '21:22:07.717']
['2014-163', '17:12:09.071', '17:38:08.219']
['2014-163', '17:38:28.310', '17:59:25.649']
['2014-163', '18:05:59.536', '18:09:53.243']
['2014-163', '18:13:47.671', '18:16:53.976']
['2014-163', '18:20:31.538', '18:23:02.243'])
def merge_subs(lst_of_lsts):
res = []
for row in lst_of_lsts:
for i, resrow in enumerate(res):
if row[0]==resrow[0]:
res[i] += row[1:]
break
else:
res.append(row)
return res
Вы пропускаете запятую после каждого подсписка в lst_of_lsts – Imran