Python中文
首页
教程
问答
标签
搜索
登录
注册
增量发生在它应该发生之前
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<pre><code>a_string = 'abc' destination = [2, 3] edges = { (1, 'a') : [2, 3], (2, 'a') : [2], (3, 'b') : [4, 3], (4, 'c') : [5] } def make(a_string, destination, edges): n = 0 while n + 1 < len(a_string): letter = a_string[n] letter2 = a_string[n + 1] for d in destination: # (1) if (d, letter2) in edges: for state in edges[(d, letter2)]: destionation.append(state) destination.remove(d) n += 1 # (2) return destination </code></pre> <p>代码返回<code>[]</code>,但是我希望看到<code>[5]</code>,所以我认为问题是它意外地增加了<code>n</code>,然后使<code>letter2</code>改变。 为什么这个代码在完成<code>for</code>循环(在位置1)之前增加<code>n</code>(在位置2)?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在循环完成之前,n不会递增。 您可能缺少的是while循环检查n+1而不是n</p> <p>编辑现在我们有更多信息:</p> <p>问题是您正在从具有未定义行为的迭代器中删除项。你知道吗</p> <p>试试看</p> <pre><code>for d in destination[:]: </code></pre> <p>这是整个数组上的切片运算符,因此它充当复制构造函数。 您现在正在另一个对象上循环,删除应该是安全的。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
"无法将Python字节数组转换成NetworkManager / GLib的GArray_guchar"
7 回答
"无法打开包含图表的Excel文件"
7 回答
"无法找到文件/目录:尝试使用LaTeX渲染matplotlib文本"
8 回答
"无法提供0个位置参数,但给出了1个"
2 回答
"无法理解字幕"
4 回答
"无法通过webdriver+python设置浏览器偏好后抑制操作系统下载文件窗口"
2 回答
"无返回语句却仍然返回非"
5 回答
"无需使用.py扩展名分发Python脚本"
3 回答
"无需分配不必要数组的Numpy运算符结果总和"
2 回答
"日期持续时间:持续时间比较不一致?"
2 回答
"日蚀,PyDev语法着色"
7 回答
"日蚀:折叠的开放资源"
2 回答
"时间复杂度 - in运算符(包含运算符)"
2 回答
"星号 * 与 python 中的地球仪有什么关系?"
2 回答
"是否AWS Cloudwatch将两个独立维度的平均值合并在一起"
4 回答
"是否使用快捷表达式而不是三元运算符符合Python风格?"
1 回答
"是否可以在Google App Engine中增加响应超时时间?"
9 回答
"是否可以在Sublime文本中使用Bpython?"
3 回答
"是否可以将Python安装从一个Windows账户移到另一个?"
4 回答
"是否可能将NaN值单元格设置为使用SVR预测缺失值的输出?"
9 回答