【发布时间】:2019-03-26 20:25:43
【问题描述】:
我正在尝试使用嵌套的 for 循环遍历对每个列表的每个元素进行操作的列表列表。我从 PyCharm 收到警告,第二个 for 循环中的计数器类型不一定是整数,尽管它是从范围值派生的。代码正确执行,为什么会出现警告?
def get_vote_fraction(cl_count, ag_vector):
v_f_vector = [[0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0]]
for b in range(0, len(v_f_vector)):
for c in range(0, len(v_f_vector[b])):
v_f_vector[b][c] = f"{(ag_vector[b][c] / cl_count): .2F}"
return v_f_vector
aggregated_vector = [[0, 8, 0, 6], [0, 1, 0, 0, 0, 0, 9, 0], [0, 0, 10, 0], [0, 10, 0, 0, 0]]
class_count = 10
vote_fraction = get_vote_fraction(class_count, aggregated_vector)
print(vote_fraction)
正如预期的那样,输出是 [['0.00', '0.80', '0.00', '0.60'], ['0.00', '0.10', '0.00', '0.00', '0.00', '0.00 '、'0.90'、'0.00']、['0.00'、'0.00'、'1.00'、'0.00']、['0.00'、'1.00'、'0.00'、'0.00'、'0.00'] ]
我收到一条警告,指出 v_f_vector[b][c] 中的 c 可能是 Unexpected type(s) (int, str),这表明 c 没有充分定义为整数。我很犹豫提出 PyCharm 的问题,因为我可能遗漏了一些简单的东西。有人看到我错过了什么吗?
【问题讨论】:
-
c(你的范围变量)确实是一个整数;如果我没看错,投诉是关于v_f_vector[b][c](列表元素)。 -
您可以创建工单。根据我的经验,Pycharm 无法解决此类问题是很常见的。只要知道如果它打扰您,您可以在您的设置中将警告变成弱警告。
-
我测试这个时没有警告
标签: python types pycharm warnings