You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python筛选列表中低于平均值的元素时结果列表为空如何解决

问题排查

核心错误出在第二个循环的判断条件:
第一个while循环结束后,你生成的随机数列表长度已经等于aantal,第二个循环的判断条件写的是while len(list) < aantal,这个条件永远不会成立,所以循环内部代码完全没有执行,kleiner自然一直是空的。

另外还有两个隐藏问题需要修复:

  • 你把list作为变量名使用,会覆盖Python内置的list类型,属于不规范写法,建议改为其他名称
  • 你当前的teller自增逻辑写在if判断内部,只有元素小于平均值时才会自增,一旦遇到大于等于平均值的元素,teller会一直停留在当前索引,导致死循环

修复后代码

from random import randint

kleiner = []
getallenlijst = []
teller = 0
aantal = int(input("Hoeveel random getallen wilt u? "))
veelvoud = int(input("Welke veelvoud? "))

while len(getallenlijst) < aantal:
    getal = randint(1, 100)
    if getal % veelvoud == 0:
        getallenlijst.append(getal)
gemiddelde = sum(getallenlijst) / len(getallenlijst)

# 修正循环条件,遍历整个列表
while teller < len(getallenlijst):
    if getallenlijst[teller] < gemiddelde:
        kleiner.append(getallenlijst[teller])
    # 不管是否满足条件,索引都要自增
    teller += 1

print(getallenlijst)
print(getallenlijst[::-1])
print(kleiner)

你也可以用更简洁的for循环替代手动维护索引的while循环:

# 替代第二个while循环
for num in getallenlijst:
    if num < gemiddelde:
        kleiner.append(num)

内容的提问来源于stack exchange,提问作者Xattics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:57:04