我有两个清单:
x_int_loc = [0,1,2,3,4,5]
xtremes = [[0,2],[0,3],[1,3],[1,5],[2,5],[3,6],[4,8]]
我试图统计x_int_loc
中的每个元素在xtremes
列表中的值范围内的次数。也就是说,1
(在列表x_int_loc
)的计数将是2
,如[0,2]
、[0,3]
等所示。你知道吗
虽然这看起来很简单,但我在循环浏览这些列表时有点卡住了。这是我的密码:
for i in range(len(x_int_loc)):
while k < len(xtremes):
if x_int_loc[i]>xtremes[k][0] and xtremes[k][1] > x_int_loc[i]:
count[i] = count[i]+1
print(count[:])
你们谁能告诉我哪里出了问题吗?你知道吗
你从不增加
k
,或者在i
增加时重置它。最小修复是:使用带有手动索引的
while
循环是不好的做法;这清楚地表明,它容易出错。为什么不直接在for
上循环xtremes
?您真正需要的是:这给了我:
除非你对优化过于挑剔,一般情况下,下面的解决方案是最优的
相关问题 更多 >
编程相关推荐