123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # -*- coding: utf-8 -*-
- # 举例:
- # a=[1,2,3,4,5,6,7]
- # b=split(a,3)
- # 则b的值为:
- # [[1, 2, 3], [4, 5, 6], [7]]
- def split(_list, item_length):
- '''
- 将制定的list,按制定长度分割。
- 举例:
- a=[1,2,3,4,5,6,7]
- b=split(a,3)
- 则b的值为:
- [[1, 2, 3], [4, 5, 6], [7]]
- :param _list: 要分割的列。_list本身在分割后不会发生变化
- :param item_length: 每一项的长度
- :return: 分割后的列
- '''
- return [_list[i:i + item_length] for i in range(0, len(_list), item_length)]
- def intersection_by(a, b, fn):
- '''
- 两个数组在被一个函数应用后,从第一个数组中提取出共有的元素的原元素组成一个新的数组。
- :param a: 数组A
- :param b: 数组B
- :param fn: 处理函数
- :return: 数组A与数组B分别被函数fn处理后的数组,相同的部分对应的第一个数组的元素组成的数组
- '''
- _b = set(map(fn, b))
- return [item for item in a if fn(item) in _b]
- def initialize_2d_list(w, h, val=None):
- """
- 初始化二维数组
- :param w:二维数组里面的每一个数组的元素个数
- :param h:二维数组里面的一维数组的个数
- :param val: 二维数组里每一个元素的默认值
- :return: 二维数组
- """
- return [[val for x in range(w)] for y in range(h)]
- def change_2d_list_line_row(list_2d):
- """
- 2维数组行转列
- :param list_2d: 2维数组
- :return: 行转列后的2维数组
- """
- return list(map(list, zip(*list_2d)))
|