[issue33815] List a = []*19 doesn't create a list with index length of 19

2018-06-09 Thread Eric V. Smith


Eric V. Smith  added the comment:

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.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33815] List a = []*19 doesn't create a list with index length of 19

2018-06-09 Thread Stefan Behnel


Stefan Behnel  added the comment:

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-l...@python.org).

--
nosy: +scoder

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33815] List a = []*19 doesn't create a list with index length of 19

2018-06-09 Thread Varada


Varada  added the comment:

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,

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33815] List a = []*19 doesn't create a list with index length of 19

2018-06-09 Thread Eric V. Smith


Eric V. Smith  added the comment:

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.

--
nosy: +eric.smith

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33815] List a = []*19 doesn't create a list with index length of 19

2018-06-09 Thread Zachary Ware


Zachary Ware  added the comment:

Nothing (or 0, or an empty list, string or tuple, etc.) multiplied by any 
positive whole number is still nothing.

--
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33815] List a = []*19 doesn't create a list with index length of 19

2018-06-09 Thread Zachary Ware


Change by Zachary Ware :


--
components:  -Windows

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33815] List a = []*19 doesn't create a list with index length of 19

2018-06-09 Thread Varada


New submission from Varada :

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 "", line 1, in 
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 "", line 1, in 
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 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com