遍历嵌套的 key:value 对
Looping through nested key:value pairs
我是 python 的新手,非常感谢您的帮助。
1) 我有一个数据结构
Table = {'1': {'From': 'A', 'To': 'B'}, '2': {'From': 'C', 'To': 'D'}}
2) 我想遍历 Table
并打印与 'From'.
关联的值
3) 我希望输出为 -> A C
如何实现?
for v in Table.values():
print v["From"]
>>> 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
class 中的一个函数:它接受任何可迭代的东西(列表、元组、生成器...)并创建一个字符串包含所有元素...
- ...由我们调用它的字符串分隔(在本例中为单个 space,但它可以是任何字符串)。
当然,@YOBA 的解决方案更容易阅读,但我还是忍不住让你困惑了一会儿——希望能教给你一些可能在其他情况下有用的概念。祝你好运,玩得开心! :)
我是 python 的新手,非常感谢您的帮助。
1) 我有一个数据结构
Table = {'1': {'From': 'A', 'To': 'B'}, '2': {'From': 'C', 'To': 'D'}}
2) 我想遍历 Table
并打印与 'From'.
3) 我希望输出为 -> A C
如何实现?
for v in Table.values():
print v["From"]
>>> 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
class 中的一个函数:它接受任何可迭代的东西(列表、元组、生成器...)并创建一个字符串包含所有元素... - ...由我们调用它的字符串分隔(在本例中为单个 space,但它可以是任何字符串)。
当然,@YOBA 的解决方案更容易阅读,但我还是忍不住让你困惑了一会儿——希望能教给你一些可能在其他情况下有用的概念。祝你好运,玩得开心! :)