作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如(从实际使用情况大大简化):
我有一个包含 3 个对象之一的 10,000 个引用的列表:
a,b,c = {'font-size':1},{'font-size':2},{'font-size':2.3}`
styles = [a,b,c,a,a,a,a,a,b,......] #10,000
这节省了我为 10000 个索引中的每一个创建一个新字典的内存,因为它们都属于三个值之一(实际上有数百个)。
现在我决定 font-size 必须是 int,因此我将 c
舍入为 {'font-size':2}
。但我希望所有 c
都变成 b
,因为它们现在是一样的。
有没有一种方法(不需要彻底检查列表并比较每个值并在需要时替换它,我知道这一点,但如果我必须对许多对象一次又一次地执行此操作,速度会很慢)来制作所有引用c
引用 b
?我知道 python 保留了一个用于垃圾清理的此类引用的列表。或者也许可以让c
引用的对象自动依次引用b
?
编辑:我很欣赏建议的解决方法,但正如评论中所述,这些解决方法都给我留下了我希望通过找到问题的答案(更改引用)来减少的问题(内存消耗或时间消耗)通过 python 的引用列表或以某种方式在 python 内部重定向引用)。
最佳答案
如何使用样式
索引:
template = a, b, c = {'font-size':1},{'font-size':2},{'font-size':2.3}`
#styles = [a,b,c,a,a,a,a,a,b,......]
styles = [0,1,2,0,0,0,0,0,1,......]
c['font-size'] = 2
# OR template[2]['font-size'] = 2
# OR template[2] = template[1]
缺点:
需要额外取消引用才能访问实际值:template[styles[i]]
而不是 styles[i]
关于Python:有没有办法使所有对一个对象的引用都引用另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20592432/
我是一名优秀的程序员,十分优秀!