pyefun.核心支持库.数组操作 源代码

"""

.. Hint::
    数组操作

.. literalinclude:: ../../../pyefun/核心支持库/数组操作_test.py
    :language: python
    :caption: 代码示例
    :linenos:
    :lines: 1-100

"""

[文档]class 数组: def __init__(self, data: list = []): self.val = list(data)
[文档] def 加入成员(self, object): self.val.append(object)
[文档] def 统计成员次数(self, object): return self.val.count(object)
[文档] def 查找成员(self, object): return self.val.index(object)
[文档] def 弹出成员(self, index: int = -1): return self.val.pop(index)
[文档] def 插入成员(self, object, index: int = -1): self.val.insert(index, object)
[文档] def 移除成员(self, object): self.val.remove(object)
[文档] def 翻转(self): self.val.reverse()
[文档] def 排序(self, **kwargs): # cmp=None, key=None, reverse=False # cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。 # key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 # reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。 self.val.sort(**kwargs)
[文档] def 从大到小(self, 下标=0): pass self.排序(reverse=True, key=lambda d: _func_key(d, 下标))
[文档] def 从小到大(self, 下标=0): self.排序(reverse=False, key=lambda d: _func_key(d, 下标))
[文档] def 取所有成员(self): return self.val
[文档] def 清空(self): self.val = []
def _func_key(d, 下标=0): if (type(d) == tuple): return d[下标] return d
[文档]def 字典_取值并删除(字典, , 失败返回值=None): '如果查找键不存在则返回设置的失败返回值,该值可空' return 字典.pop(, 失败返回值)
[文档]def 字典_取指定键值(字典, , 失败返回值=None): '如果查找键不存在则返回设置的失败返回值' return 字典.get(, 失败返回值)
[文档]def 字典_清空(字典): '清空字典内的全部元素,成功返回True' 字典.clear() return True
[文档]def 字典_拷贝(新字典, 原字典): '成功返回True 直接赋值拷贝值会跟着原字典改变,用copy不会' 新字典 = 原字典.copy() return True
[文档]def 字典_生成(键值列表, 键值): '传入键值列表创建字典,字典内的值都为设置的键值' return dict.fromkeys(键值列表, 键值)
[文档]def 字典_转列表(字典): '返回列表格式[(1,2),(2,3),(3,4)]' return list(字典.items())
[文档]def 字典_取全部键(字典): return list(字典.keys())
[文档]def 字典_取全部值(字典): return list(字典.values())
[文档]def 字典_取出并删除最后键值(字典): '删除字典中最后一个键跟值并以元组格式返回删除的键跟值' return 字典.popitem()
[文档]def 字典_取值添加(字典, , =None): '如果查找键不存在则返回设置的失值且为字典新建该键值' return 字典.setdefault(, )
[文档]def 列表_转字典(列表): '将[(1,2),(3,4)]转换成{1:2,3:4}' 字典 = dict() for x in 列表: 字典[x[0]] = x[1] return 字典
[文档]def 列表_合并为字典(列表1, 列表2): '传入两个列表转换成字典 [1,2],[8,9]==>{1:8,2:9}' return dict(zip(列表1, 列表2))
[文档]def 列表_加入成员(列表, ): '成功返回True' 列表.append() return True
[文档]def 列表_插入成员(列表, 位置, ): '成功返回True 在指定位置插入指定值' 列表.insert(位置, ) return True
[文档]def 列表_取出现次数(列表, ): '搜索时 True 会当成1 False 是0' return 列表.count()
[文档]def 列表_合并列表(列表, 新列表): '成功返回True 在列表后面追加新的列表或元组成员进去' 列表.extend(新列表) return True
[文档]def 列表_查找成员位置(列表, ): return 列表.index()
[文档]def 列表_取值并删除(列表, 位置=None): '取出列表的一个成员值 并删除该成员,默认最后一个,位置为0则为第一个' if 位置 == None: return 列表.pop() else: return 列表.pop(位置)
[文档]def 列表_删除指定值(列表, ): '成功返回True 删除列表中找到的第一个值' 列表.remove() return True
[文档]def 列表_倒序排列(列表): '成功返回True 把列表的成员顺序到过来排序' 列表.reverse() return True
[文档]def 列表_大小排序(列表, 排序方式=False): '成功返回True 排序的列表只能全为整数型的,排序方式True为从大到小,默认False从小到大' 列表.sort(reverse=排序方式) return True
[文档]def 数组_按成员长度排序(数组): '传入一个序列,根据成员的长度排序 长的在前面' return sorted(数组, key=lambda i: len(i), reverse=True)
[文档]def 数组_按子成员大小排序(数组, 成员索引): '处理数组内包含数组需要排序的' return sorted(数组, key=lambda i: i[成员索引])
[文档]def 数组_取随机成员数组(数组, 数量): '失败返回False,在指定数组内随机取出指定数量的成员组成新数组返回' return random.sample(数组, 数量)
[文档]def 数组_取随机成员(数组): '可以传入字符 元组 列表登录,随机取出一个值' return random.choice(数组)