Dapatkan nilai unik bidang kedua menggunakan arcpy.da.SearchCursor?

8

Saya memiliki kelas fitur dan menggunakan arcpy.da.SearchCursor. Saya mendapatkan nilai unik bidang (misalnya Nama). Bagaimana saya bisa menggunakan metode ini untuk mendapatkan nilai baris terkait dari bidang yang berbeda (bidang diff = Name2)?

Sejauh ini saya menggunakan ini untuk mendapatkan nilai unik hanya pada bidang Nama:

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

Saat mencari melalui kelas fitur bagaimana saya juga mendapatkan nilai dari bidang lain, bidang Name2?

artwork21
sumber
1
Bisakah Anda memberikan sedikit lebih banyak konteks? Apa yang ingin Anda lakukan sebenarnya?
blah238

Jawaban:

8

Pemahaman kamus:

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

Perhatikan ini hanya akan memiliki SATU nilai per nilai kolom Nama unik. Anda juga dapat menggunakan koleksi untuk mendapatkan daftar nilai Name2:

import collections
names = collections.defaultdict(list)

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

File bantuan pada SearchCursor (arcpy.da) memiliki Sampel Kode di bagian bawah. Contoh SearchCursor pertama 1 menunjukkan cara mengambil daftar bidang. Tetapkan baris [0] dan baris [1] ke nama variabel untuk digunakan dalam kode Anda.

ccn
sumber
@con, Daftar bidang .format metode baris tidak berfungsi, untuk nilai dalam uniqueValues:
artwork21
2
@ artwork21 Dapatkah Anda memposting kode yang dimodifikasi sebagai edit untuk pertanyaan tambahan Anda?
Fezter