領域名(regionspointcount
)をキーとして保持し、その領域内の機能の種類のカウント(str
)を値として保持するint
という辞書があります。 {'Highland':21}
。
列挙中に辞書のキーと値を繰り返したいです。次のようなことを行う方法はありますか?
for i, k, v in enumerate(regionspointcount.items()):
または、カウント変数を使用する必要がありますか?
辞書d
が与えられた場合:
d
# {'A': 1, 'B': 2, 'C': 3, 'D': 4}
タプルを使用して、for
ループヘッダーのキーと値のペアをアンパックできます。
for i, (k, v) in enumerate(d.items()):
print(i, k, v)
# 0 A 1
# 1 B 2
# 2 C 3
# 3 D 4
余分な括弧が必要な理由を理解するには、enumerate
からの生の出力を見てください。
list(enumerate(d.items()))
# [(0, ('A', 1)), (1, ('B', 2)), (2, ('C', 3)), (3, ('D', 4))]
キーと値のペアはタプル内にパッケージ化されるため、同じ方法で展開する必要があります。
キーと値のペアを列挙したいだけで(インデックスi
は不要)、iter()
を使用できます。
d={'A': 1, 'B': 2, 'C': 3, 'D': 4}
for k,v in iter(d.items()):
print(k,v)
これは次のようなものを印刷します
A 1
C 3
B 2
D 4
エントリは必ずしも順序付けられていないことに注意してください。