当前位置: 首页 > 知识库问答 >
问题:

如何使用给定列表创建分页函数

谢铭
2023-03-14

我必须创建一个分页函数询问2个arguements数组和page_number

我试图解决的任何一个项目在一个列表中,我有一些问题,这里是一个代码

def paginator(array,page_number):
    if 0 < page_number < len(array):
        obj_per_page = len(array)//page_number
        objects = len(array)
        count = 0
        start = 0
        while objects > 1:
            count += 1
            objects -= len(array)//page_number
            object_available = array[start:obj_per_page]
            print(f'this is page {count} have object {object_available}')
            start = obj_per_page 
            obj_per_page += len(array)//page_number
    
    elif len(array) <= page_number:
        for i in array:
            print(f'thi is page {i} have object [{i}]')
 
    else:
        print(array)
 
 
list = [1,2,3,4,5,6]
page_number = 3
 
paginator(list,page_number)

输出

this is page 1 have object [1, 2]
this is page 2 have object [3, 4]
this is page 3 have object [5, 6]

`此代码仅在以下情况下提供预期输出:

如果len(list)可被page_number整除,如果page_number为0,或如果page_number大于并等于len(list)`

臭虫

假设len(list)是9,page_number是(2,4,5,6,7,8)之一,9%(2,4,5,6,7,8)的剩余部分是(1,1,4,3,2,1),因此项的数目等于remaider而缺失

我想要的东西

如果len(list)是9,page_number是4,并且我想输出如下所示

this is page 1 have object [1, 2, 3]
this is page 2 have object [4, 5]
this is page 3 have object [6, 7]
this is page 4 have object [8, 9]

如果你们有其他的解决方法,请帮帮我,分享它,我试着解释我的问题,对不起,糟糕的语法

共有1个答案

滕学义
2023-03-14

我已经更新了数组索引,在第一页添加提醒对象。

def paginator(array,page_number):
    if 0 < page_number < len(array):
        obj_per_page = len(array)//page_number
        reminder_objects = len(array) - (obj_per_page * page_number)
        total_objects = len(array)
        count = 0
        start = 0
        first_page = True
        while total_objects > 0:
            if first_page and reminder_objects > 0:
                total_objects_current_page = obj_per_page + reminder_objects
            else:
                total_objects_current_page = obj_per_page
            total_objects -= total_objects_current_page
            object_available = array[start:start+total_objects_current_page]                
            count += 1
            print(f'this is page {count} have object {object_available}')
            start += total_objects_current_page 
            first_page = False
    
    elif len(array) <= page_number:
        for i in array:
            print(f'thi is page {i} have object [{i}]')
 
    else:
        print(array)
 
 
ar = [1,2,3,4,5,6,7,8,9]
page_number = 4

输出:

this is page 1 have object [1, 2, 3]
this is page 2 have object [4, 5]
this is page 3 have object [6, 7]
this is page 4 have object [8, 9]
 类似资料:
  • 我试图从一个范围创建一个列表,但当我将它粘贴到另一个列表中时,我得到的是一个类,而不是我期望的列表- 代码: 这输出<代码>范围(0,3),

  • 我读到DB2不支持限制和偏移量。我还读到您必须使用ROW_NUMBER()和子查询来获得所需的结果。如果这是SQL查询: 其中$offset是偏移量,$rowserPage是我希望在页面上显示的数据库行的数量,这可以等效为DB2查询。

  • 我希望能够处理从必须在页面中访问的源读取的java流。作为第一种方法,我实现了一个分页迭代器,它在当前页面用尽条目时简单地请求页面,然后使用< code > stream support . stream(iterator,false)获取迭代器上的流句柄。 因为我发现获取我的页面非常昂贵,所以我想通过并行流的方式访问页面。此时,我发现由于java直接从迭代器提供的spliterator实现,我的

  • 所以基本上,我希望数组中的所有对象都是单个流的一部分,因为这就是我将要使用的客户端应用程序的设计方式。目前总共只有3个。所以在每个流中都将包含一个数组的所有对象。我知道这不是WebFlux的最佳用途。如果可以做到,这怎么能做到呢?

  • 问题内容: 我们创建为: 我们如何用Java 创建一个? 问题答案: 或使用泛型(Java 7或更高版本) 或带有泛型(旧的Java版本)

  • 问题内容: 我有3个表,分别为: 应用程序(ID,名称) 资源(ID,名称) ApplicationsResources(id,app_id,resource_id) 我想在GUI上显示所有资源名称的表。我想在每一行的一个单元格中列出该资源的所有应用程序(以逗号分隔)。 所以问题是,在SQL中执行此操作的最佳方法是什么,因为我需要获取所有资源,并且还需要获取每种资源的所有应用程序? 我是否先从资源