字典与元组作为价值观?

Dan*_*Dan 1 python python-2.7

我有一个位置名称,然后是每个位置的纬度和经度.我正在尝试确定在Python中用两个值表达单个键的最佳方法.我在想这个:

dict = {
    'California': ('36.46715833333333', '-117.85891388888888'),
    'California2': ('36.46715833333333', '-117.85891388888888'),
}
Run Code Online (Sandbox Code Playgroud)

然后添加更多:

dict['California'] = ('36.46715833333333', '-117.85891388888888')
Run Code Online (Sandbox Code Playgroud)

但是,我将如何轻松地遍历每个并提取它们?

for location in dict:
    for lat, lon in location:
        print lat, lon
Run Code Online (Sandbox Code Playgroud)

这给出了一个ValueError,声明它没有多个值可以解压缩.我如何迭代这个并得到每个lat和long?

Ble*_*der 6

迭代一个dict对象迭代它的键.您必须明确获取值:

for location in d:
    lat, long = d[location]
Run Code Online (Sandbox Code Playgroud)

或使用.items():

for name, location in d.items():
    lat, long = location
Run Code Online (Sandbox Code Playgroud)

或者使用tuple解压缩:

for name, (lat, long) in d.items():
    ...
Run Code Online (Sandbox Code Playgroud)

另外,不要为您的字典命名dict.你正在影响内置dict(long但你可能不会注意到).