arcpy.da.SearchCursorを使用して2番目のフィールドの一意の値を取得しますか?


8

フィーチャクラスがあり、arcpy.da.SearchCursorを使用して、フィールドの一意の値(名前など)を取得しています。このメソッドを使用して、別のフィールド(diffフィールド= Name2)の関連する行の値を取得するにはどうすればよいですか?

これまでのところ、これを使用して、フィールド名のみで一意の値を取得します。

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

フィーチャクラスを検索するときに、別のフィールド(フィールドName2)の値も取得するにはどうすればよいですか?


1
もう少しコンテキストを提供できますか?正確に何をしたいですか?
blah238 2013

回答:


8

辞書の理解:

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

これは、一意のName列の値ごとに1つの値のみを持つことに注意してください。コレクションを使用して、Name2値のリストを取得することもできます。

import collections
names = collections.defaultdict(list)

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

2

SearchCursor(arcpy.da)のヘルプファイルの下部にコードサンプルがあります。最初のSearchCursorの例1は、フィールドのリストを取得する方法を示しています。コードで使用する変数名にrow [0]とrow [1]を割り当てます。


@con、フィールドのリスト.format行メソッドは、uniqueValuesの値に対して機能しませんでした:
アートワーク21

2
@ artwork21追加の質問の編集として、変更したコードを投稿できますか?
Fezter
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.