【问题标题】:Looping through nested key:value pairs遍历嵌套的键:值对
【发布时间】:2015-08-24 18:58:06
【问题描述】:
我是 python 新手,非常感谢您的帮助。
1) 我有一个数据结构
Table = {'1': {'From': 'A', 'To': 'B'}, '2': {'From': 'C', 'To': 'D'}}
2) 我想遍历Table 并打印与“From”关联的值。
3) 我希望输出为 -> A C
我如何做到这一点?
【问题讨论】:
标签:
python
python-2.7
loops
python-3.x
nested-loops
【解决方案1】:
for v in Table.values():
print v["From"]
【解决方案2】:
>>> table = {'1': {'From': 'A', 'To': 'B'}, '2': {'From': 'C', 'To': 'D'}}
>>> print ' '.join(row['From'] for row in table.values())
A C
那我在这里做什么?
-
(row['From'] for row in table.values()) 是 generator expression。它创建一个生成器(类似于其他语言中的迭代器)。
- 我们将此生成器发送到 join(),它是
str 类中的一个函数:它接受任何可迭代的事物(列表、元组、生成器...)并创建一个包含所有元素的字符串...
- ...由我们调用它的字符串分隔(在本例中为单个空格,但可以是任何字符串)。
当然,@YOBA 的解决方案更容易阅读,但我无法抗拒让您困惑片刻——希望能教给您一些在其他情况下可能有用的概念。祝你好运,玩得开心! :)