我有一个循环函数来计算一个列表的组合的2个值:
xyList = []
for i, j in itertools.combinations(mx, 2):
x= *some calculation*
y= *some calculation*
xyList.append([x,y])
但是,列表的组合太多,总是会出现MemoryError,因此,我尝试只保留唯一值:
p=[x,y]
if not (p in xyList):
xyList.append(p)
但是仍然存在MemoryError,现在我考虑的是只保留每个x``y
和最小值y
,也就是这个x,y散点形状的轮廓,但是我想不出一个有效的方法来做到这一点,可能的解决方案是什么?
1条答案
按热度按时间7ivaypg91#
您可能应该将
xyList
改为 dictionary。假设我们将其命名为xy_limits
。xy_limits
的每个值都可以是一个列表,该列表将最小值和最大值作为其元素进行跟踪。当您遇到超出此范围的y
值时,可以替换正确的值。请考虑:由于
old_limits
是list
(可变类型),所以对该变量的修改(例如,通过分配其元素之一)将在列表的所有出现中被看到,诸如在原始xy_limits
中