例如,我有一个 dict var 定义如下:
var{m:(a, b)}
现在我想在 for 循环中引用 'a' 的值
假设 var 填充了一些实例,如下所示
var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}
例如,我有一个 dict var 定义如下:
var{m:(a, b)}
现在我想在 for 循环中引用 'a' 的值
假设 var 填充了一些实例,如下所示
var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}
你可能想要,而不是:
for k, (v1, v2) in var.iteritems():
print v1
或者,如果不是所有的 dict 值都有两个项目(或者如果您的 Python 版本不进行多级元组解包):
for k, v in var.iteritems():
print v[0]
对,所以你想要v[0]['1a'][0]
编辑:回应您的评论,您可能想要:
for key, value in v[k].items():
print value[0]
可能这就是你想要的:
var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}
for m, elements in var.items():
for a, b in elements.values():
print a
让我们看看这个通用示例是否可以通过描述性地命名我们得到的项目来使其清楚。
var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}
您想迭代 var 包含的所有 dicts 并迭代它们包含的内容。
for number, innerdict in var.items(): # first time around number is e.g. 0 and innerdict is e.g. {'1a': (502, 2)}
print number
for numberletter, tup in innerdict.items(): # first time around numberletter is e.g. 1a and tup is e.g. (502, 2)
print numberletter, tup
for tuplenumber in tup: # first time around tuplenumber is e.g. 502
print tuplenumber
这是你想要的?
var = {'m':('a', 'b'), 'n': ('c','d')}
a_coords = [(k,v.index('a')) for k,v in var.iteritems() if 'a' in v ]
结果:
>>> a_coords
[('m', 0)]
'm'
是与包含 a 的元组的值相关联的键,并且0
是 a 所在的索引。