python - 将数组拆分为多个部分以进行分页
问题描述
假设我有一个数组:
["Ford","BMW","Audi","Tesla","BMW","Bentley","Chevrolet","Lexus","Mazda","Maserati","Mini"]
那么如果我想每页打印 3 个元素(在终端中),我期待以下输出
"Ford","BMW","Audi" (First page)
"Tesla","BMW","Bentley" (Second Page)
"Chevrolet","Lexus","Mazda" (Third page)
我正在考虑切片,但我不知道该怎么做。每页的元素数取决于用户输入,对于每个“x”元素,页数将加 1。我正在终端中打印输出。
解决方案
您可以使用for
-loop 和range(len())
data = ["Ford","BMW","Audi","Tesla","BMW","Bentley","Chevrolet","Lexus","Mazda","Maserati","Mini"]
page_size = 3
pages_data = []
for i in range(0, len(data), page_size):
pages_data.append(data[i:i+page_size])
print(pages_data)
结果:
[ ['Ford', 'BMW', 'Audi'], ['Tesla', 'BMW', 'Bentley'], ['Chevrolet', 'Lexus', 'Mazda'], ['Maserati', 'Mini'] ]
现在您可以将其用作pages_data[page]
您也可以这样做,while
但它会破坏原始列表
data = ["Ford","BMW","Audi","Tesla","BMW","Bentley","Chevrolet","Lexus","Mazda","Maserati","Mini"]
page_size = 3
pages_data = []
while data:
pages_data.append(data[:page_size])
data = data[page_size:]
print(pages_data)
结果相同:
[ ['Ford', 'BMW', 'Audi'], ['Tesla', 'BMW', 'Bentley'], ['Chevrolet', 'Lexus', 'Mazda'], ['Maserati', 'Mini'] ]
在这两个你可以做
print('total pages:', len(pages_data))
for number, data in enumerate(pages_data, 1):
print(number, "|", ", ".join(item))
结果:
total pages: 4
1 | Ford, BMW, Audi
2 | Tesla, BMW, Bentley
3 | Chevrolet, Lexus, Mazda
4 | Maserati, Mini
推荐阅读
- php - 从数组PHP中搜索数组的第一个数组中获取密钥
- laravel - Problem with laravel/ui in laravel after the last update
- javascript - 有没有办法在视觉上重新格式化这段代码?为什么会这样?
- ios - 如何在 SwiftUI 中访问“发送者”的手势?
- mysql - 在 MySQL 中加入表的转置
- omnet++ - OMNeT++ 批量执行弄乱了结果
- bash - 如何使用 jq 从 json 对象的数组中的键中提取值?
- api - Bargain Finder - cvc-enumeration-valid 错误
- reactjs - React 对象不是 useEffect 上的函数错误
- django-models - 从 Django 中的孩子那里获取父母