New submission from Varada <varad...@gmail.com>:
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. >>> ---------- components: Windows messages: 319163 nosy: paul.moore, steve.dower, tim.golden, varada86, zach.ware priority: normal severity: normal status: open title: List a = []*19 doesn't create a list with index length of 19 type: behavior versions: Python 3.6 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue33815> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com