【发布时间】:2018-07-11 20:33:53
【问题描述】:
我试图尽可能地压缩下面的代码,并尽可能像 Python 一样,感谢建议。
#!/Library/Frameworks/Python.framework/Versions/2.7/bin/python
import yaml
FILE='t'
with open(FILE, 'r') as F:
doc = yaml.load(F)
compr = [x for x in doc]
for x in doc:
for k,v in x.items():
print "\n"
print k
for k2,v2 in v.items():
print k2,
for b in v2:
print b,
doc 的输出如下所示:
[{'UK': {'City': [1, 2, 3]}}, {'France': {'City': [1, 2]}}, {'US': {'City': [1, 2, 3]}}]
我的预期输出如下:
UK
City 1 2 3
France
City 1 2
US
City 1 2 3
【问题讨论】:
-
你在问什么?这段代码是 Pythonic。把它放在一个列表理解中会使它不是pythonic,除非你不是想创建一个列表,但是AFAIKT你只是想打印一些东西(你不应该在列表中做理解,因为列表理解是用于创建列表,而不是用于副作用)。说到不必要的列表理解,
compr = [x for x in doc]->compr = list(doc)
标签: python python-2.7 dictionary