如何用Pythonic方式生成含浮点边界的列表或生成器
更Pythonic的方式生成指定范围的列表
你可以用列表拼接的方式,一行代码就能完成,比分步写法更简洁:
from math import ceil start = 2.6 end = 8.2 result = [start] + list(range(ceil(start), ceil(end))) + [end]
如果不需要立即得到列表,而是想要生成器(节省内存),可以用itertools.chain拼接迭代器:
from math import ceil import itertools start = 2.6 end = 8.2 gen = itertools.chain([start], range(ceil(start), ceil(end)), [end])
要是需要频繁处理这类需求,还可以封装成一个复用性强的函数:
from math import ceil def range_with_bounds(start: float, end: float): return [start] + list(range(ceil(start), ceil(end))) + [end] # 调用示例 result = range_with_bounds(2.6, 8.2)
这些写法都符合Python的简洁风格,避免了分步操作的繁琐。
内容的提问来源于stack exchange,提问作者Pygmalion
相关产品推荐
相关产品推荐

