1

場所の名前と、各場所の緯度と経度があります。Python で 2 つの値を持つ単一のキーを表現する最良の方法を決定しようとしています。私はこれを考えていました:

dict = {
    'California': ('36.46715833333333', '-117.85891388888888'),
    'California2': ('36.46715833333333', '-117.85891388888888'),
}

次に、さらに追加します。

dict['California'] = ('36.46715833333333', '-117.85891388888888')

しかし、それぞれを簡単に反復処理して抽出するにはどうすればよいでしょうか?

for location in dict:
    for lat, lon in location:
        print lat, lon

これにより、展開する値が複数ないことを示す ValueError が返されます。これを反復して、緯度と経度を取得するにはどうすればよいですか?

4

2 に答える 2

6

dict オブジェクトを反復処理すると、そのキーが反復処理されます。値を明示的に取得する必要があります。

for location in d:
    lat, long = d[location]

または使用.items()

for name, location in d.items():
    lat, long = location

または、それでタプルアンパックを使用します:

for name, (lat, long) in d.items():
    ...

また、辞書に名前を付けないでくださいdict。ビルトインをシャドーイングしていますdict(そしてlong、おそらく気付かないでしょう)。

于 2013-05-23T15:16:33.873 に答える
1

別の回答が述べたように、辞書を反復すると、値ではなくキーのみが取得されます。あなたが望む方法を反復する最も直接的な方法:

for lat, lon in d.itervalues():

3つすべてを取得するには:

for location, (lat, lon) in d.iteritems():
于 2013-05-23T15:19:44.633 に答える