Не все строки добавляются в список в SearchCursor - PullRequest
1 голос
/ 21 марта 2019
with arcpy.da.SearchCursor(fc, ["LAT", "LON"]) as cursor:
    for row in cursor:
        print("Print rows: {} ".format(row)
        xy_list = [(row[0],row[1]) for row in cursor]

print("Print list: {} ".format(xy_list))

Вывод:

Print rows: (44.8175669441669, -63.6431023726842) 
Print list: [(44.8175486319183, -63.6432418986223), (44.8170733108224, -63.644658488894)] 

Класс объектов, из которого я извлекаю символы Lat и Long из SearchCursor для добавления в список, имеет три атрибута.Я не понимаю, почему не добавляются все три координаты.

Примечание. Координаты, которые я напечатал «Печать строк: (44.8175669441669, -63.6431023726842)», отсутствуют в списке.

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Каждая строка является списком, если вы хотите создать список строк (или матрицы, или вектора двух измерений), вы должны добавить эти строки в виде списков в ваш xy_list:

import arcpy

fc = r'C:\Teste\Teste.gdb\Test_Coord'

xy_list = []

with arcpy.da.SearchCursor(fc, ["LAT", "LON"]) as cursor:
    for row in cursor:
        print row
        xy_list.append(list(row))

print("Print list: {} ".format(xy_list))
0 голосов
/ 21 марта 2019

Вы потребляете «курсор» итерируемый один раз в цикле for, а затем снова внутри тела for с пониманием списка (второй и третий раз).

Похоже, что в итоге вы хотитеxy_list = список (курсор)

Нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...