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?


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)

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.


@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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.