On 24/05/2018 19:17, Steven D'Aprano wrote:
But what do people think about proposing a new list replication with copy
operator?
[[]]**5
would return a new list consisting of five shallow copies of the inner
list.
Thoughts?
Choice of ** doesn't seem right for a start, as it suggests it should
mean []*[]*[]*[]*[], which it doesn't. (Apparently []*2 /is/ the same as
[]+[].)
How about just:
x = dupllist([[]], 5)
x[0].append(777)
print (x)
which gives:
[[777], [], [], [], []]
Of course you have to implement dupllist(), but you'd have to implement
** too, and that is harder. For this specific example, it can just be:
def dupllist(x,n):
return [x[0].copy() for _ in range(n)]
--
bartc
--
https://mail.python.org/mailman/listinfo/python-list