我已经实现了这个算法:
def get_hot_pages(self, radius = 2):
if self.page == None or self.max_pages == None: return []
hot_pages = []
for page in xrange(self.page - radius, self.page + radius + 1):
if page < 0 or page >= self.max_pages : continue
hot_pages.append(page)
return hot_pages
Run Code Online (Sandbox Code Playgroud)
但有些事情告诉我,这可以更好地实施.是否有更多的pythonic方式来做到这一点?
通常的"技巧"是使用max()和min()设置最小和最大页码:
def get_hot_pages(self, radius = 2):
if self.page is None or self.max_pages is None: return []
return range(max(self.page-radius, 0), min(self.page+radius+1, self.max_pages))
Run Code Online (Sandbox Code Playgroud)
这种方法的主要优点是:
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |