【发布时间】:2020-03-06 06:26:35
【问题描述】:
我遇到的问题是不可能不跳出 while 循环,AKA“matched_index”将始终被定义,但我的 IDE 抛出“可能在分配前被引用”错误。对此进行编码的 Pythonic 方式是什么?我找到的最接近的是this post,但我不确定如何编写 kindall 的建议。
这是我的代码:
another_list = [0] * len(my_list)
if X in my_list:
i = 0
while i < len(my_list):
if X == my_list[i]:
matched_index = i
break
i += 1
another_list[matched_index] = 0.2
【问题讨论】:
-
pythonic 方法是使用 for 循环,但问题仍然存在。一个解决方案是在循环体之外定义你的
matched_index。注意,如果my_list为空,循环体将不会执行,这就是警告的含义 -
注意,你的 IDE 给你一个警告,这不是错误。
-
对于您的第二条评论,我意识到这是一个警告而不是错误,但我只是好奇如何更好地编码。问题是 my_list 不能为空,所以我需要弄清楚如何修复警告。
-
您可以忽略警告。没有什么可以“修复”的。
标签: python python-3.x