Python中文
首页
教程
问答
标签
搜索
登录
注册
列表理解失败,但为什么?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>谁能向我解释为什么这个列表理解失败:</p> <pre><code>provider1 = {'id': 1, 'name': 'Een'} provider2 = {'id': 2, 'name': 'Twee'} provider3 = {'id': 3, 'name': 'Drie'} provider4 = {'id': 4, 'name': 'Vier'} provider5 = {'id': 5, 'name': 'Vijf'} provider6 = {'id': 6, 'name': 'Zes'} provider7 = {'id': 7, 'name': 'Zeven'} providers = [provider1, provider2, provider3, provider4, provider5, provider6, provider7] def testfunc(id): return next(provider for provider in providers if int(provider['id']) == int(id)) for x in range(0, 8): print testfunc(x) </code></pre> <p>当我运行这个函数并将0传递给函数时,它的输出是:</p> <pre><code>Traceback (most recent call last): File "/Users/me/Documents/scratchpad/main.py", line 17, in <module> print testfunc(x) File "/Users/me/Documents/scratchpad/main.py", line 13, in testfunc return next(provider for provider in providers if int(provider['id']) == int(id)) StopIteration Process finished with exit code 1 </code></pre> <p>它确实适用于非零整数。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>是的,因为你的发电机是空的。你的数据都不匹配</p> <pre><code>if int(provider['id']) == 0 </code></pre> <p>在空生成器上调用<code>next</code>会抛出<code>StopIteration</code>。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
5 回答
如何添加表示整数的擦边字符串?
9 回答
如何添加要在Bokeh中使用的新font.ttf文件?
6 回答
如何添加要显示的矩阵XY轴编号和XY轴
7 回答
如何添加计数?
10 回答
如何添加计数器函数?
2 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
8 回答
如何添加计数器来跟踪while循环中的月份和年份?
8 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
5 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
9 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
3 回答
如何添加评论拉梅尔亚姆
2 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
1 回答
如何添加谷歌地点自动完成到Flask?
4 回答
如何添加超时、python discord bot
10 回答
如何添加超过1dp的检查
9 回答
如何添加距离方法
3 回答
如何添加跟随游戏的敌人精灵
1 回答
如何添加路径以便python可以找到程序?
6 回答
如何添加身份验证/安全性以使用happybase访问HBase?
9 回答