我有一本复杂的字典:
l = {10: [{'a':1, 'T':'y'}, {'a':2, 'T':'n'}], 20: [{'a':3,'T':'n'}]}
Run Code Online (Sandbox Code Playgroud)
当我尝试迭代字典时,我没有得到带有字典值列表的字典,我得到了一个像这样的元组:
for m in l.items():
print(m)
(10, [{'a': 1, 'T': 'y'}, {'a': 2, 'T': 'n'}])
(20, [{'a': 3, 'T': 'n'}])
Run Code Online (Sandbox Code Playgroud)
但是当我打印 l 时,我得到了我原来的字典:
In [7]: l
Out[7]: {10: [{'a': 1, 'T': 'y'}, {'a': 2, 'T': 'n'}], 20: [{'a': 3, 'T': 'n'}]}
Run Code Online (Sandbox Code Playgroud)
如何迭代字典?我仍然需要键并处理值列表中的每个字典。
这里有两个问题。首先,您问为什么这会变成“元组” - 该问题的答案是因为这就是.items()字典上的方法返回的内容 - 每个键/值对的元组。
了解这一点后,您就可以决定如何使用这些信息。您可以选择在迭代期间将元组扩展为两部分
for k, v in l.items():
# Now k has the value of the key and v is the value
# So you can either use the value directly
print(v[0]);
# or access using the key
value = l[k];
print(value[0]);
# Both yield the same value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3568 次 |
| 最近记录: |