首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pycharm:应为类型“Integral”,而应为“str”

Pycharm:应为类型“Integral”,而应为“str”
EN

Stack Overflow用户
提问于 2014-05-31 03:51:50
回答 2查看 26.7K关注 0票数 12

我刚刚安装了PyCharm 3.4,得到了一些新的警告。不只是这里,还有很多地方。当然,代码也没问题。有没有人能翻译一下PyCharm想要告诉我什么,以及如何让这些消息静默?

more...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-01 05:53:20

基于“更多...”截图显示,Pycharm可能会将map()解释为逗号周围的两个术语都是lambda的一部分,即lambda只返回一个2元组,而不是将其视为map()函数的两个参数。

可以尝试的内容:

  • ()内添加括号查找可能会使Pycharm

混淆的内置map()的重新定义

编辑

您激励我去学习更多关于Python和Pycharm的知识。:)

看起来Pycharm更喜欢使用列表理解而不是map()。使用以下示例数据:

代码语言:javascript
复制
data = {
    'data': {
        'children': [
            {'data': {'url': 'http://1.com/', }, },
            {'data': {'url': 'http://2.com/', }, },
        ]
    },
}

如果您像以前一样编写代码,则会得到错误:

代码语言:javascript
复制
items = map(lambda children: children['data'], data['data']['children'])
for item in items:
    print item['url']  # Pycharm shows warning on 'url'

但是如果你使用列表理解,那么Pycharm会很高兴:

代码语言:javascript
复制
items = [x['data'] for x in data['data']['children']]
for item in items:
    print item['url']  # No warning from Pycharm

并且两者的输出是相同的。

ISTR认为,如今列表理解比map()更受欢迎,所以也许Pycharm是在推动我们朝着这个方向前进?

票数 9
EN

Stack Overflow用户

发布于 2016-11-07 23:29:27

如果使用get()从字典中获取值,也可以取消此通知。这应该是可行的:fresh_urls = {item.get('url') for item in items}

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23962434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档