我在python中具有以下结构。
data_set = {'1':[('Worktype', 'Consultancy'), ('Age', 30), ('Qualification', 'Ph.D'), ('Age', 9)], \
'2':[('Worktype', 'Service'), ('Age', 21), ('Qualification', 'M.Tech'), ('Age', 1)], \
'3':[('Worktype', 'Research'), ('Age', 26), ('Qualification', 'M.Tech'), ('Age', 2)], \
}
我正在使用以下循环访问元素。我的目的是打印与“工作类型”相关的值。
for d,c in data_set:
print(c['Worktype'])
但是,我收到以下错误-
for d,c in data_set:
ValueError: need more than 1 value to unpack
正确的方法是什么?
当您直接遍历字典时,它仅遍历其key
s。要同时遍历值,您也应该遍历.items()
,即使内部元素不是列表,也是如此dict
,因此您不能直接访问- c['Worktype']
。
似乎内部元素是要用作字典的,如果是这样,则应首先使用dict()
内置函数将其转换为字典。例子 -
data_set = {k:dict(v) for k,v in data_set.items()}
for d,c in data_set.items():
print(c['Worktype'])
演示-
>>> data_set = {'1':[('Worktype', 'Consultancy'), ('Age', 30), ('Qualification', 'Ph.D'), ('Age', 9)], \
... '2':[('Worktype', 'Service'), ('Age', 21), ('Qualification', 'M.Tech'), ('Age', 1)], \
... '3':[('Worktype', 'Research'), ('Age', 26), ('Qualification', 'M.Tech'), ('Age', 2)], \
... }
>>>
>>> data_set = {k:dict(v) for k,v in data_set.items()}
>>>
>>> for d,c in data_set.items():
... print(c['Worktype'])
...
Service
Consultancy
Research
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句