我刚刚安装了 PyCharm 3.4,出现了一些新的警告。不仅在这里,在很多地方都是如此。当然,代码是没问题的。有人能翻译一下 PyCharm 告诉我的内容以及如何消除这些消息吗?
data = {
'data': {
'children': [
{'data': {'url': 'http://1.com/', }, },
{'data': {'url': 'http://2.com/', }, },
]
},
}
如果您编写的代码像您所做的那样,那么就会出现错误:
items = map(lambda children: children['data'], data['data']['children'])
for item in items:
print item['url'] # Pycharm shows warning on 'url'
但如果您使用列表推导式,那么Pycharm就会很高兴:
items = [x['data'] for x in data['data']['children']]
for item in items:
print item['url'] # No warning from Pycharm
输出结果对于两者都是相同的。
我记得现在推荐使用列表推导式而不是 map()
,所以也许Pycharm正在引导我们朝这个方向发展?
map()
更受欢迎? - petroslamb如果您使用 get()
从字典中获取值,也可以消除此通知。应该是这样的:
fresh_urls = {item.get('url') for item in items}
这样做可以达到效果。
item
是一个列表或元组。 - Martijn Pietersitems
的部分。 - huu