【发布时间】:2017-06-28 20:17:26
【问题描述】:
将对象的引用从一个列表转移到另一个列表的最佳方法是什么(将对象从一个列表移动到另一个列表)。为了清楚起见,我需要在复制后从d[1] 中删除对象
class MyObject:
def __init__(self,v):
self.value = v
d = {1: [MyObject("obj1"),MyObject("obj2")], 2: []}
#which one?
#d[2] = [obj for obj in d[1]]
#d[2] = d[1][:]
#d[2] = d[1].copy()
#clear d[1]
#d[1] = []
for i in range(len(d[1])):
d[2].append(d[1].pop(0))
for o in d[2]:
print (o.value)
【问题讨论】:
-
"best" 究竟如何?它是否对先前的列表具有破坏性是否重要(您的一些建议是,有些不是)。为什么不直接选择一个,然后把时间花在其他更有用的事情上?
-
哪个“人”?为什么不问他们他们更喜欢哪一个呢?或者一旦你们有更实用的东西一起使用Code Review?
-
你当然需要提供context。要决定哪个更好,您需要指定 criteria,否则它只是一个意见。如果只是“[随机 SO 用户] 更喜欢哪一个”,那么除了他们谁还能说呢?
标签: python list python-3.x class