Python 结合范围和数字列表

3 投票
1 回答
3804 浏览
提问于 2025-04-17 13:38
range(5, 15) [1, 1, 5, 6, 10, 10, 10, 11, 17, 28]
range(6, 24) [4, 10, 10, 10, 15, 16, 18, 20, 24, 30]
range(7, 41) [9, 18, 19, 23, 23, 26, 28, 40, 42, 44]
range(11, 49) [9, 23, 24, 27, 29, 31, 43, 44, 45, 45]
range(38, 50) [1, 40, 41, 42, 44, 48, 49, 49, 49, 50]

我从一个函数的打印命令中得到了上面的输出。我真正想要的是一个合并的列表,比如在第一行显示5,6,7...15,1,1,5,6等等。

这个输出范围来自于

range_draws=range(int(lower),int(upper))

我天真地以为这会给我一个范围。其他的数字来自于一个切片列表。

有人能帮我得到想要的结果吗?

1 个回答

5

range() 函数会返回一个特别的 范围对象,这样可以节省内存(因为只需要记录开始、结束和步长,不用把所有数字都存起来)。如果想要把它变成一个列表,可以进行转换:

list(yourrange) + otherlist

引用一下文档中的内容:

range 类型相比普通的 listtuple 的好处在于,range 对象无论表示的范围有多大,始终只占用同样(很小)的内存空间(因为它只存储 startstopstep 的值,具体的数字和子范围会根据需要计算出来)。

撰写回答