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

如何将奇偶数字拆分至两个列表直至均达到指定长度?

问题解决建议

你的核心问题是循环条件和元素添加逻辑不匹配:

  • 用or的循环条件方向是对的(只要有一个列表没满5就继续输入),但没做「满5的列表不再接收新元素」的判断,导致满了的列表还会被继续添加元素;
  • 换成and的话,循环会在第一个列表满5时就终止,另一个列表没法凑够5个元素。

修改方案很简单:保持or的循环条件,在添加元素前先判断对应列表是否还没满5,满了就跳过添加操作。这样既能保证循环运行到两个列表都满5才停止,又不会给已经满的列表多加元素。

修改后的代码:

even_list = []
odd_list = []
while len(even_list) < 5 or len(odd_list) < 5:
    a = int(input("Insert a number: "))
    if a % 2 == 0:
        if len(even_list) < 5:  # 仅当偶数列表未满时才添加
            even_list.append(a)
    else:
        if len(odd_list) < 5:  # 仅当奇数列表未满时才添加
            odd_list.append(a)

print(f"Even numbers inserted are: {even_list}")
print(f"Odd numbers inserted are: {odd_list}")

测试效果:当偶数列表已经有5个元素后,再输入偶数会被忽略,直到奇数列表也凑够5个,循环自动停止;反之亦然,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:49:54