hutool.core.util.array¶
数组工具类,对应 Java cn.hutool.core.util.ArrayUtil
Module Contents¶
Classes¶
数组工具类,对应 Java cn.hutool.core.util.ArrayUtil |
API¶
- class hutool.core.util.array.ArrayUtil¶
数组工具类,对应 Java cn.hutool.core.util.ArrayUtil
- static is_empty(array) bool¶
数组是否为空,None也视为空
- 参数:
array – 待检查的数组或列表
- 返回:
如果 array 为 None 或长度为 0 则返回 True
- static is_not_empty(array) bool¶
数组是否为非空
- 参数:
array – 待检查的数组或列表
- 返回:
如果 array 非 None 且长度大于 0 则返回 True
- static has_null(*args) bool¶
是否有null元素
- 参数:
args – 任意数量的参数
- 返回:
如果存在任意一个参数为 None 则返回 True
- static is_all_null(*args) bool¶
是否全部为null
- 参数:
args – 任意数量的参数
- 返回:
如果所有参数均为 None 则返回 True
- static first_non_null(*args)¶
返回第一个非null值
- 参数:
args – 任意数量的参数
- 返回:
第一个不为 None 的值,全部为 None 则返回 None
- static append(array: list, *new_elements) list¶
追加元素,返回新数组
- 参数:
array – 原始列表
new_elements – 要追加的元素
- 返回:
追加后的新列表
- static insert(array: list, index: int, *new_elements) list¶
在指定位置插入元素
- 参数:
array – 原始列表
index – 插入位置索引,支持负索引
new_elements – 要插入的元素
- 返回:
插入后的新列表
- 抛出:
IndexError – 索引越界时抛出
- static remove(array: list, index: int) list¶
移除指定位置元素
- 参数:
array – 原始列表
index – 要移除的位置索引,支持负索引
- 返回:
移除后的新列表
- 抛出:
IndexError – 索引越界时抛出
- static remove_ele(array: list, element) list¶
移除指定元素(第一个匹配)
- 参数:
array – 原始列表
element – 要移除的元素
- 返回:
移除后的新列表,如果元素不存在则返回原列表的副本
- static index_of(array, value) int¶
查找元素位置,不存在返回-1
- 参数:
array – 要搜索的列表或可迭代对象
value – 要查找的值
- 返回:
元素首次出现的索引,不存在返回 -1
- static last_index_of(array, value) int¶
从后向前查找
- 参数:
array – 要搜索的列表或可迭代对象
value – 要查找的值
- 返回:
元素最后出现的索引,不存在返回 -1
- static contains(array, value) bool¶
是否包含指定元素
- 参数:
array – 要搜索的列表或可迭代对象
value – 要查找的值
- 返回:
如果包含该元素则返回 True
- static contains_any(array, *values) bool¶
是否包含任意一个
- 参数:
array – 要搜索的列表或可迭代对象
values – 要查找的值(可多个)
- 返回:
如果包含任意一个值则返回 True
- static contains_all(array, *values) bool¶
是否包含全部
- 参数:
array – 要搜索的列表或可迭代对象
values – 要查找的值(可多个)
- 返回:
如果包含全部值则返回 True
- static sub(array: list, start: int, end: int) list¶
获取子数组,支持负索引
- 参数:
array – 原始列表
start – 起始索引(包含),支持负索引
end – 结束索引(不包含),支持负索引
- 返回:
子列表
- 抛出:
IndexError – 索引越界时抛出
- static join(array, conjunction: str) str¶
数组转字符串,用连接符连接
- 参数:
array – 要连接的列表或可迭代对象
conjunction – 连接符
- 返回:
连接后的字符串,空数组返回空字符串
- static zip_list(keys: list, values: list) dict¶
两个列表合并为字典
- 参数:
keys – 键列表
values – 值列表
- 返回:
合并后的字典,长度以较短的列表为准
- static to_list(iterable) list¶
转为列表
- 参数:
iterable – 可迭代对象
- 返回:
转换后的列表,None 返回空列表
- static reverse(array: list) list¶
反转数组,返回新数组
- 参数:
array – 原始列表
- 返回:
反转后的新列表
- static shuffle(array: list) list¶
随机打乱,返回新数组
- 参数:
array – 原始列表
- 返回:
随机打乱后的新列表
- static swap(array: list, index1: int, index2: int) list¶
交换两个位置的元素
- 参数:
array – 原始列表
index1 – 第一个位置索引
index2 – 第二个位置索引
- 返回:
交换后的新列表
- 抛出:
IndexError – 索引越界时抛出
- static length(array) int¶
获取数组长度
- 参数:
array – 数组或列表,None 返回 0
- 返回:
数组长度
- static min(array) Any¶
取最小值
- 参数:
array – 非空列表或可迭代对象
- 返回:
最小值
- 抛出:
ValueError – 数组为空时抛出
- static max(array) Any¶
取最大值
- 参数:
array – 非空列表或可迭代对象
- 返回:
最大值
- 抛出:
ValueError – 数组为空时抛出
- static has_empty(*args) bool¶
是否有空值
空值定义:None、空字符串、空列表/元组/字典/集合等。
- 参数:
args – 任意数量的参数
- 返回:
如果存在任意一个空值则返回 True
- static filter(array: list, filter_func: Callable[[Any], bool]) list¶
过滤数组
- 参数:
array – 原始列表
filter_func – 过滤函数,返回 True 保留,False 过滤
- 返回:
过滤后的新列表
- static map(array: list, map_func: Callable[[Any], Any]) list¶
映射数组
- 参数:
array – 原始列表
map_func – 映射函数,对每个元素进行转换
- 返回:
映射后的新列表
- static flatten(nested_list) list¶
展平嵌套列表
将多层嵌套的列表展平为一维列表。字符串和字节类型不会被展开。
- 参数:
nested_list – 嵌套列表
- 返回:
展平后的一维列表
- static distinct(array: list) list¶
去重,保持顺序
- 参数:
array – 原始列表
- 返回:
去重后的新列表,保持原有顺序
- static fill(value, size: int) list¶
用指定值填充指定大小的列表
注意:如果 value 是可变对象(如 list、dict),列表中的每个元素将是同一个引用。 如需独立副本,请对每个元素单独复制。
- 参数:
value – 填充的值
size – 列表大小
- 返回:
填充后的列表
- 抛出:
ValueError – size 为负数时抛出
- static default_if_empty(arr, default=None)¶
如果数组为空则返回默认值。
- 参数:
arr – 数组(可为 None)
default – 默认值
- 返回:
原数组或默认值
- static first_match(arr, predicate)¶
返回数组中第一个满足条件的元素。
- 参数:
arr – 数组
predicate – 条件函数
- 返回:
满足条件的元素,无匹配返回 None
- static match_index(arr, predicate)¶
返回数组中第一个满足条件的元素索引。
- 参数:
arr – 数组
predicate – 条件函数
- 返回:
索引,无匹配返回 -1
- static set_or_append(arr: list, index: int, value) list¶
设置值到指定索引,越界时追加到末尾。
- 参数:
arr – 列表
index – 索引
value – 值
- 返回:
修改后的列表
- static replace(arr: list, index: int, value) Any¶
替换指定索引的值并返回旧值。
- 参数:
arr – 列表
index – 索引
value – 新值
- 返回:
旧值
- static resize(arr: list, new_size: int, fill_value=None) list¶
调整数组大小。
- 参数:
arr – 列表
new_size – 新大小
fill_value – 填充值(当需要扩展时)
- 返回:
调整后的列表
- static add_all(arr: list, *elements) list¶
向数组中添加多个元素。
- 参数:
arr – 列表
elements – 要添加的元素
- 返回:
添加后的列表
- static copy(arr, new_size: int = -1)¶
复制数组。
- 参数:
arr – 原数组
new_size – 新数组大小,-1 表示与原数组相同
- 返回:
复制后的新数组
- static clone(arr)¶
浅克隆数组。
- 参数:
arr – 原数组
- 返回:
克隆后的新数组
- static edit(arr, func)¶
对数组中每个元素应用函数。
- 参数:
arr – 数组
func – 转换函数
- 返回:
转换后的新数组
- static remove_null(arr: list) list¶
移除数组中的 None 元素。
- 参数:
arr – 原数组
- 返回:
移除 None 后的新数组
- static remove_empty(arr: list) list¶
移除数组中的空元素(None、空字符串、空列表等)。
- 参数:
arr – 原数组
- 返回:
移除空元素后的新数组
- static remove_blank(arr: list) list¶
移除数组中的空白字符串元素。
- 参数:
arr – 原数组
- 返回:
移除空白字符串后的新数组
- static null_to_empty(arr)¶
None 转空数组。
- 参数:
arr – 数组(可为 None)
- 返回:
原数组或空列表
- static index_of_ignore_case(arr, element: str) int¶
忽略大小写查找字符串在数组中的索引。
- 参数:
arr – 字符串数组
element – 要查找的字符串
- 返回:
索引,不存在返回 -1
- static contains_ignore_case(arr, element: str) bool¶
忽略大小写判断数组是否包含字符串。
- 参数:
arr – 字符串数组
element – 要查找的字符串
- 返回:
是否包含
- static wrap(arr) list¶
将单个元素包装为数组。
- 参数:
arr – 元素或数组
- 返回:
数组
- static is_array(obj) bool¶
判断对象是否为数组(list 或 tuple)。
- 参数:
obj – 对象
- 返回:
是否为数组
- static get(arr, index: int)¶
安全地获取数组中指定索引的元素。
- 参数:
arr – 数组
index – 索引
- 返回:
元素,越界返回 None
- static get_any(arr)¶
获取数组中任意一个元素。
- 参数:
arr – 数组
- 返回:
任意元素,为空返回 None
- static index_of_sub(array, sub_array) int¶
查找子数组在数组中第一次出现的起始索引。
- 参数:
array – 主数组
sub_array – 子数组
- 返回:
第一次出现的起始索引,未找到返回 -1
- static last_index_of_sub(array, sub_array) int¶
查找子数组在数组中最后一次出现的起始索引。
- 参数:
array – 主数组
sub_array – 子数组
- 返回:
最后一次出现的起始索引,未找到返回 -1
- static is_all_empty(*arrays) bool¶
判断所有数组是否都为空。
- 参数:
arrays – 一个或多个数组
- 返回:
所有数组均为空(None 或长度为 0)时返回 True
- static is_all_not_empty(*arrays) bool¶
判断所有数组是否都不为空。
- 参数:
arrays – 一个或多个数组
- 返回:
所有数组均非空时返回 True
- static is_all_not_null(*arrays) bool¶
判断所有数组是否都不为 None。
- 参数:
arrays – 一个或多个数组
- 返回:
所有数组均不为 None 时返回 True
- static is_sorted(array, comparator=None) bool¶
判断数组是否已排序。
- 参数:
array – 待检查的数组
comparator – 自定义比较函数,接受两个参数,返回负数/0/正数;为 None 时使用默认升序比较
- 返回:
是否已排序
- static is_sorted_asc(array) bool¶
判断数组是否为升序排列。
- 参数:
array – 待检查的数组
- 返回:
是否为升序排列
- static is_sorted_desc(array) bool¶
判断数组是否为降序排列。
- 参数:
array – 待检查的数组
- 返回:
是否为降序排列
- static is_sub(array, sub_array) bool¶
判断 sub_array 是否为 array 的子序列(元素按顺序出现,不要求连续)。
- 参数:
array – 主数组
sub_array – 待检查的子序列
- 返回:
是否为子序列
- static map_to_set(array, func) set¶
对数组中每个元素应用函数,并将结果收集到集合中。
- 参数:
array – 输入数组
func – 映射函数,接受单个元素并返回结果
- 返回:
映射结果组成的集合
- static to_array(iterable) list¶
将可迭代对象转换为列表。
- 参数:
iterable – 可迭代对象
- 返回:
列表,iterable 为 None 时返回空列表
- static zip_arrays(*arrays) list¶
将多个数组按对应位置打包为元组列表,长度不足的部分用 None 填充。
- 参数:
arrays – 一个或多个数组
- 返回:
打包后的元组列表