Issue33815
Created on 2018-06-09 17:44 by varada86, last changed 2022-04-11 14:59 by admin. This issue is now closed.
| Messages (6) | |||
|---|---|---|---|
| msg319163 - (view) | Author: Varada (varada86) | Date: 2018-06-09 17:44 | |
Hi, As per my understanding, a = [0]*19 -> creates a list of length 19 with all zeros, >>> a = [0]*19 >>> print (len(a)) 19 >>> a [18] = 2 >>> print (a) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2] >>> In the similar way, >>> a = []*19 --> Must create a blank list with length 19. That is eventhough the contents of the list would be blank or null, I would at least expect the length of the list must 19 and the index must have got memory allocated so I can access it later ? Otherwise, if a = []*19 is going to return length as 0, and it's index cannot be accessed then what difference does it have with a = []. Aren't they the same ? There should be some significance of using a = []*19 compared to a = []. They cant the the same, can they ? >>> a = []*19 >>> a [18] = 2 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list assignment index out of range >>> print (len(a)) 0 >>> >>> b = [] >>> print (len(b)) 0 >>> b [18] = 2 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list assignment index out of range >>> ----- Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> |
|||
| msg319165 - (view) | Author: Zachary Ware (zach.ware) * ![]() |
Date: 2018-06-09 17:52 | |
Nothing (or 0, or an empty list, string or tuple, etc.) multiplied by any positive whole number is still nothing. |
|||
| msg319168 - (view) | Author: Eric V. Smith (eric.smith) * ![]() |
Date: 2018-06-09 18:16 | |
To elaborate on Zach's comment: Notice that your first example repeats 0 19 times. The second example repeats nothing 19 times. If you first example returned a list with [0] repeated 19 (that is: [[0], [0], [0], ..., [0]]), then you're correct the second example should produce a list of 19 empty lists. But that's not the case here. |
|||
| msg319170 - (view) | Author: Varada (varada86) | Date: 2018-06-09 18:43 | |
Hi, Eric & Zach, Thanks for your kind response. @Eric, from your comments am I to understand that you agree with me or state that my understanding is wrong ? :) I couldn't conclude it. The point where I find difficult to convince myself is why am I not able to access a[18] when I have already kind of declared it like a = []*19. Is that really an expected behavior. I agree with Zak, that nothing * anything = nothing. But, in that case why we even allow that command to work. It leads us think that it will create an empty list 19 times whereas it actually doesn't. It's kind of misleading don't you think. Many Thanks in advance Eric and Zak for your time on this, |
|||
| msg319172 - (view) | Author: Stefan Behnel (scoder) * ![]() |
Date: 2018-06-09 19:14 | |
You misunderstood what the code is doing, and the response that you got indicates that the bug tracker is not the right place to discuss this misunderstanding. If you want to discuss this further, please ask on the Python mailing list (python-list@python.org). |
|||
| msg319173 - (view) | Author: Eric V. Smith (eric.smith) * ![]() |
Date: 2018-06-09 19:35 | |
Agreed with Stefan about this not being appropriate for the bug tracker. And I'm saying that I don't agree with you. There's no bug here. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:59:01 | admin | set | github: 77996 |
| 2018-06-09 19:35:04 | eric.smith | set | messages: + msg319173 |
| 2018-06-09 19:14:56 | scoder | set | nosy:
+ scoder messages: + msg319172 |
| 2018-06-09 18:43:42 | varada86 | set | messages: + msg319170 |
| 2018-06-09 18:16:21 | eric.smith | set | nosy:
+ eric.smith messages: + msg319168 |
| 2018-06-09 17:52:41 | zach.ware | set | components: - Windows |
| 2018-06-09 17:52:30 | zach.ware | set | status: open -> closed resolution: not a bug messages: + msg319165 stage: resolved |
| 2018-06-09 17:44:10 | varada86 | create | |
