Python 整数无穷大用于切片

发布于 2024-11-24 16:43:31 字数 394 浏览 1 评论 0原文

我在配置文件中定义了一个切片参数:

max_items = 10

我的类根据此参数对列表进行切片:

items=l[:config.max_itmes]

max_items = 0 时,我希望从 l 中获取所有项目。快速但肮脏的方法是:

config.max_items=config.max_items if config.max_items>0 else 1e7

假设少于 1e7 项。然而,我不喜欢使用魔法数字。有没有更Pythonic的方法来做到这一点,比如无穷大整数常量?

I have defined a slicing parameter in a config file:

max_items = 10

My class slices a list according to this parameter:

items=l[:config.max_itmes]

When max_items = 0, I want all items to be taken from l. The quick and dirty way is:

config.max_items=config.max_items if config.max_items>0 else 1e7

Assuming that there will be less then 1e7 items. However, I don't fancy using magic numbers. Is there a more Pythonic way of doing it, like an infinity integer constant?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哎呦我呸! 2024-12-01 16:43:31

Python 中没有“无穷大整数常量”,但是在切片中使用 None 会导致它使用给定位置的默认值,即开始、结束和序列中的每个项目,对于切片的三个部分中的每一个。

>>> 'abc'[:None]
'abc'

There is no "infinity integer constant" in Python, but using None in a slice will cause it to use the default for the given position, which are the beginning, the end, and each item in sequence, for each of the three parts of a slice.

>>> 'abc'[:None]
'abc'
泅渡 2024-12-01 16:43:31

您尝试过 sys.maxint 吗?

Have you tried with sys.maxint?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文