Iterables

manimlib/utils/iterables.py 这个文件中主要实现了和列表字典处理有关的函数


manimlib.utils.iterables.remove_list_redundancies(l)

Used instead of list(set(l)) to maintain order Keeps the last occurrence of each element

对列表 l 去重,保留重复元素最后一次出现


manimlib.utils.iterables.list_update(l1, l2)

Used instead of list(set(l1).update(l2)) to maintain order, making sure duplicates are removed from l1, not l2.

从 l1 中删除 l2 中重复项,再与 l2 合并


manimlib.utils.iterables.list_difference_update(l1, l2)

返回两列表中不同的项的列表


manimlib.utils.iterables.all_elements_are_instances(iterable, Class)

iterable 列表中的所有元素是否都为Class类


manimlib.utils.iterables.adjacent_n_tuples(objects, n)

objects 的相邻 n 元组(返回zip)


manimlib.utils.iterables.adjacent_pairs(objects)

objects 相邻对


manimlib.utils.iterables.batch_by_property(items, property_func)

Takes in a list, and returns a list of tuples, (batch, prop) such that all items in a batch have the same output when put into property_func, and such that chaining all these batches together would give the original list (i.e. order is preserved)

输入一个列表,返回一个元组列表(batch,prop)
这样一个批中的所有项在放入 property_func 时都具有相同的输出
并且将所有这些批链接在一起将得到原始列表(即保留顺序)

manimlib.utils.iterables.listify(obj)

根据 obj 返回列表

  • 若 obj 为 str 类型,返回 [obj]

  • 尝试返回 list(obj)

  • 若报错,返回 [obj]


manimlib.utils.iterables.resize_array(nparray, length)

重置数组长度

  • 若长度变短,则截断为前半部分元素

  • 若长度不变,则直接返回

  • 若长度变长,则循环拷贝


manimlib.utils.iterables.resize_preserving_order(nparray, length)

重置数组长度,但保留原有的序列

  • 若长度为 0,则返回 0 数组

  • 若长度变短,则截断为前半部分元素

  • 若长度不变,则直接返回

  • 若长度变长,则类似 [1,2,3] 变为 [1,1,2,2,3,3]


manimlib.utils.iterables.resize_with_interpolation(nparray, length)

重置数组长度,并对中间元素进行线性插值,插值起止点分别为数组的首尾元素


manimlib.utils.iterables.make_even(iterable_1, iterable_2)

将 iterable_1 和 iterable_2 调成一样的长度,不足的伸缩调整


manimlib.utils.iterables.make_even_by_cycling(iterable_1, iterable_2)

将 iterable_1 和 iterable_2 调成一样的长度,不足的循环使用


manimlib.utils.iterables.remove_nones(sequence)

将 sequence 中的 None 去除掉,并返回


manimlib.utils.iterables.concatenate_lists(*list_of_lists)

串联列表 list_of