我想在
matplotlib
中绘制一个函数,但仅限于由两个浮点数界定的范围内,例如 2.6
和 8.2
。为此,我需要一个包含两个浮点边界的列表或生成器,例如
[2.6, 3, 4, 5, 6, 7, 8, 8.2]
我知道可以这样做
lst = [2.6]
lst.extend(list(range(ceil(2.6), ceil(8.2))))
lst.append(8.2)
但这很奇怪。有没有更好的Pythonic方法来做到这一点?
PEP 448 的额外解包概括 至少让这变得不那么冗长:
lst = [2.6, *range(ceil(2.6), ceil(8.2)), 8.2]
我个人会将它包装在一个函数中,并记录你这样做的内容/原因,但它内联工作得很好,假设代码在上下文中比在这里缺乏上下文更有意义。
顺便说一句,原始代码中的
list
调用是多余的; .extend
接受任何可迭代对象,就像 list
构造函数一样,因此如果您可以首先将其转换为 list
,则可以将其直接传递给 extend
并避免临时 list
。
列表推导式具有Python风格的声誉,所以你可以尝试:
ll=[2.6, 3, 4, 5, 6, 7, 8, 8.2]
x1,x2=2.6,7
[x for x in ll if x>=x1 and x<=x2]