020ReviewmidPython / SymPy真实来源改编 SymPy
SymPy partitions:避免迭代结果共享可变字典
审查一个 SymPy iterator PR:作者在 partitions() 返回分区字典时复制结果,避免收集列表后被后续迭代改写。
@@ if size: yield sum(ms.values()), ms else:- yield ms+ yield ms.copy()@@ if size: yield sum(ms.values()), ms else:- yield ms+ yield ms.copy()@@+def test_partitions_size_values():+ result = list(partitions(6, k=2, size=True))+ assert [size for size, _ in result] == [3, 4, 5, 6]