New submission from Stefan Chrobot:
The docs says:
"If the target is a slicing: The primary expression in the reference is evaluated. It should yield a mutable sequence object (such as a list). The assigned object should be a sequence object of the same type."
This seems wrong, because the assigned object can be any iterable:
a = [4, 5, 6] a[0:0] = range(1, 4)
# a is now [1, 2, 3, 4, 5, 6]
assignee: docs@python components: Documentation messages: 188738 nosy: docs@python, stefanchrobot priority: normal severity: normal status: open title: Misleading information about slice assignment in docs type: enhancement versions: Python 3.3
Terry J. Reedy added the comment:
Since range objects have a known length, that example is not enough to show 'any iterable'. However, generators do not even have a __length_hint__ and they work too.
a = [1,2,3] a[0:1] = (i for i in range(4)) print(a)
[0, 1, 2, 3, 2, 3]