用Python将一个列表分割成小列表

方法一

def list_of_groups(init_list, childern_list_len):
    '''
    init_list为初始化的列表,childern_list_len初始化列表中的几个数据组成一个小列表
    :param init_list:
    :param childern_list_len:
    :return:
    '''
    list_of_group = zip(*(iter(init_list),) *childern_list_len)
    end_list = [list(i) for i in list_of_group]
    count = len(init_list) % childern_list_len
    end_list.append(init_list[-count:]) if count !=0 else end_list
    return end_list
print(list_of_groups(l,1))

方法二

l = [i for i in range(15)]
n = 3  #大列表中几个数据组成一个小列表
print([l[i:i + n] for i in range(0, len(l), n)])

效果
这里写图片描述

补充:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#冒泡排序
import random
li = [random.randint(1,100) for _ in range(5)]
print(li)
for x in range(len(li)-1):
    for j in range(len(li) -1 - x ):
        if li[j] > li[j +1]:
            li[j],li[j +1 ] = li[j +1],li[j]
print(li)
  • 13
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Opencv提供了cv2.split()和cv2.merge()函数来进行图像分割和合并。 要将图像分割成九等份,可以按照以下步骤进行操作: 1. 读取图像 2. 确定分割的行数和列数,例如,要将图像分为3行3列,则行数为3,列数为3。 3. 计算每个小图像的宽度和高度 = 图像宽度除以列数,图像高度除以行数 4. 迭代图像中每个小部分的起始位置,然后通过Numpy slicing操作将图像切割成小片段 5. 对每个小部分进行需要的操作,然后将它们合并成一个大图像 下面是一个代码示例: ```python import cv2 import numpy as np # 读取图像 img = cv2.imread("test.jpg") # 定义分割的行数和列数 rows = 3 cols = 3 # 计算每个小图像的宽度和高度 height, width, _ = img.shape grid_height = height // rows grid_width = width // cols # 定义一个列表存储分割后的小图像 grid_list = [] # 迭代图像中每个小部分的起始位置 for i in range(rows): for j in range(cols): x = j * grid_width y = i * grid_height # Numpy slicing操作将图像切割成小片段 grid_list.append(img[y:y + grid_height, x:x + grid_width]) # 对每个小部分进行需要的操作,例如显示或保存 for i, grid in enumerate(grid_list): cv2.imshow(f"grid_{i}", grid) cv2.waitKey(0) cv2.destroyAllWindows() # 将切割后的小图像合并成一个大图像 merged_image = np.vstack([np.hstack(grid_list[j:j + rows]) for j in range(0, rows * cols, rows)]) # 显示合并后的图像 cv2.imshow("merged_image", merged_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 上述代码经过测试,可以成功将图像分割成9等份并合并成一张大图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值