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

Python如何将1-30范围内的奇数输出为[1,3,5,7...]格式的完整列表

问题原因

  • 循环内重复覆盖mylist变量,没有将所有奇数汇总到同一个列表
  • 将数字转为字符串类型,不符合最终列表的元素类型要求
  • 打印语句放在循环内部,导致每匹配到一个奇数就单独打印一次

修复方案

方案1:基于原有逻辑修改

在循环外初始化空列表,匹配到奇数时追加到列表,循环结束后统一打印:

# 先初始化空列表存储结果
mylist = []
myrange = list(range(1,30))
for i in myrange:
    if i % 2 != 0:
        # 往列表追加元素,不要覆盖原列表
        mylist.append(i)
# 循环结束后再打印完整列表
print(mylist)

方案2:使用列表推导式简化代码

mylist = [i for i in range(1, 30) if i % 2 != 0]
print(mylist)

方案3:直接利用range步长参数生成奇数序列(逻辑最优)

range默认步长为1,设置步长为2即可直接生成间隔为2的奇数序列:

mylist = list(range(1, 30, 2))
print(mylist)

三种方案运行后都会输出你需要的结果:
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:06