[5 kyu] PaginationHelper
文章目录
[5 kyu] PaginationHelperQuestionSample TestsMy Answer (accepted)Suggested Answer
Question
Sample Tests
My Answer (accepted)
class PaginationHelper:
def __init__(self
, collection
, items_per_page
):
self
.collection
= collection
self
.items_per_page
= items_per_page
def item_count(self
):
return len(self
.collection
)
def page_count(self
):
self
.combine_page
= list()
i
= 0
while i
< self
.item_count
():
self
.combine_page
.append
(self
.collection
[i
:i
+self
.items_per_page
])
i
+= self
.items_per_page
print(self
.combine_page
)
return len(self
.combine_page
)
def page_item_count(self
,page_index
):
return len(self
.combine_page
[page_index
]) if page_index
< len(self
.combine_page
) else -1
def page_index(self
,item_index
):
if item_index
< 0 or (item_index
+ 1) > self
.item_count
():
return -1
else:
for (index
, item
) in enumerate(self
.combine_page
):
print(index
,item
)
begin_
= index
* self
.items_per_page
end_
= begin_
+ len(item
) - 1
print(begin_
,end_
)
if item_index
>= begin_
and item_index
<= end_
:
return index
Suggested Answer
class PaginationHelper:
def __init__(self
, collection
, items_per_page
):
self
.collection
= collection
self
.items_per_page
= items_per_page
def item_count(self
):
return len(self
.collection
)
def page_count(self
):
if len(self
.collection
) % self
.items_per_page
== 0:
return len(self
.collection
) / self
.items_per_page
else:
return len(self
.collection
) / self
.items_per_page
+ 1
def page_item_count(self
,page_index
):
if page_index
>= self
.page_count
():
return -1
elif page_index
== self
.page_count
() - 1:
return len(self
.collection
) % self
.items_per_page
or self
.items_per_page
else:
return self
.items_per_page
def page_index(self
,item_index
):
if item_index
>= len(self
.collection
) or item_index
< 0:
return -1
else:
return item_index
/ self
.items_per_page
转载请注明原文地址:https://blackberry.8miu.com/read-26756.html