Как я могу преобразовать список с подсписком в единый список (выравнивание)? - PullRequest
0 голосов
/ 25 марта 2020

У меня есть список координат следующим образом:

temp = [((20.0, 15.076858380630263), (20.0, 16.92468707613784)), (5.430012747754155, 3.3503228946034667), (7.364023506893538, 7.013767290971433), (11.932318028181742, 8.766709807679579), ((12.839934501779176, 11.300824688102473), (13.285114114146213, 14.10378570292717),(14.839934501779176, 16.300824688102473))]

Как вы можете видеть, здесь есть несколько вложенных списков с несколькими координатами, поэтому я хочу, чтобы это выглядело следующим образом:

temp =[(20.0, 15.076858380630263), (20.0, 16.92468707613784), (5.430012747754155, 3.3503228946034667), (7.364023506893538, 7.013767290971433), (11.932318028181742, 8.766709807679579), (12.839934501779176, 11.300824688102473), (13.285114114146213, 14.10378570292717), (14.839934501779176, 16.300824688102473)]

Это всего лишь пример, и у меня огромный вывод, и я не знаю, где находятся эти вложенные списки и сколько в них координат. Но общая структура та же самая.

Спасибо.

1 Ответ

1 голос
/ 25 марта 2020

Вы можете использовать понимание списка:

[j  for i in temp for j in (i if isinstance(i[0], tuple) else [i])]

вывод:

[(20.0, 15.076858380630263),
 (20.0, 16.92468707613784),
 (5.430012747754155, 3.3503228946034667),
 (7.364023506893538, 7.013767290971433),
 (11.932318028181742, 8.766709807679579),
 (12.839934501779176, 11.300824688102473),
 (13.285114114146213, 14.10378570292717),
 (14.839934501779176, 16.300824688102473)]
...