2016-12-23 3 views
-1

Я пытаюсь выяснить маршрут, который автомобиль берет в вымышленном манхэттене. Я определил начальную позицию: (1,2) (в 2-мерной сетке).Как получить данные в кортежах и кортежах в списках?

manhattan=[[1, 2, 3, 4, 5], 
     [6, 7, 8, 9, 10], 
     [11, 12, 13, 14, 15], 
     [16, 17, 18, 19, 20]] 

car_in_manhattan=8 
car_unmerged = ([(index, row.index(car_in_manhattan)) for index, row in enumerate(manhattan) if car_in_manhattan in row]) 
car=list(itertools.chain(*car_unmerged)) 

я это делаю, потому что я не хочу список в списке

route1=car 

Первая позиция в маршруте, где начинается автомобиль. Я начинаю цикл for, который смотрит, какой человек ближе всего к моей машине. Этот человек должен быть поднят, это место должно быть добавлено в список маршрута.

печати этот результат дает:

[1, 2, (.,.), (.,.), (.,.), (.,.), (.,.)] 

точки в скобках правильно заполнены, я намеренно оставил их «пустой» здесь.

проблема заключается в том, что я не знаю, как это начальное положение для автомобиля, (1,2) также может находиться между скобками, так же как и все другие местоположения. Это связано с кортежами, если я прав?

Заранее благодарен!

ответ

0

Что-то вроде этого?

a= [1, 2, (3,4), (5,6)] 
b=[(a[0],a[1])] + a[2:] 
print b 

Выход:

[(1, 2), (3, 4), (5, 6)] 

Объяснение:

[(a[0],a[1])] + a[2:] 

(a[0],a[1]) --> Create a tuples from 1st and 2nd element of list a 
[(a[0],a[1])] --> Enclose it in a list. 
a[2:] --------> Slice list a, extract all elements starting from index position 2 

[(a[0],a[1])] + a[2:] --> add both the list 
+0

Спасибо, вы можете объяснить то, что я вижу, что здесь происходит? – dv58585