Nhận giá trị duy nhất của trường thứ hai bằng arcpy.da.SearchC tiền?


8

Tôi có một lớp đối tượng và sử dụng arcpy.da.SearchCoder Tôi đang nhận các giá trị duy nhất của một trường (ví dụ: Tên). Làm cách nào tôi có thể sử dụng phương thức này để lấy giá trị hàng liên quan của một trường khác (diff field = Name2)?

Cho đến nay tôi sử dụng điều này để nhận các giá trị duy nhất trên tên trường:

values = [row[0] for row in arcpy.da.SearchCursor(fc, ("Name"))]
    uniqueValues = set(values)
    for value in uniqueValues:  

Khi tìm kiếm thông qua lớp đối tượng, làm thế nào để tôi cũng nhận được giá trị của trường khác, trường Tên2?


1
Bạn có thể cung cấp thêm một chút bối cảnh? Bạn đang tìm kiếm để làm gì chính xác?
blah238

Câu trả lời:


8

Hiểu từ điển:

{row[0]: row[1] for row in arcpy.da.SearchCursor(fc, ("Name", "Name2"))}

Lưu ý điều này sẽ chỉ có MỘT giá trị trên mỗi giá trị cột Tên duy nhất. Bạn cũng có thể sử dụng các bộ sưu tập để nhận danh sách các giá trị Name2:

import collections
names = collections.defaultdict(list)

for name1, name2 in arcpy.da.SearchCursor(fc, ("Name", "Name2")):
    names[name1].append(name2)

2

Tệp trợ giúp trên SearchCthon (arcpy.da) có Mẫu mã ở phía dưới. Ví dụ Tìm kiếm đầu tiên 1 cho thấy cách lấy danh sách các trường. Gán hàng [0] và hàng [1] cho tên biến để sử dụng trong mã của bạn.


@con, Danh mục các lĩnh vực .format phương pháp hàng không làm việc cho, cho giá trị trong UniqueValues:
artwork21

2
@ tác phẩm nghệ thuật21 Bạn có thể đăng mã sửa đổi dưới dạng chỉnh sửa cho câu hỏi bổ sung của mình không?
Fezter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.