<div dir="ltr"><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">Hi ,</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">Let me demonstrate the problem I encountered :</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">I had a list</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px"> a = [1, 2, 3]</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">when I did</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">a.insert(100, 100)</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">[1, 2, 3, 100]</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">as list was originally of size 4 and I was trying to insert value at index 100 , it behaved like append instead of throwing any errors as I was trying to insert in an index that did not even existed .</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px"><br></span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">Should it not throw</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">IndexError: list assignment index out of range</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">exception as it throws when I attempt doing</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">a[100] = 100</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><br></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">Personal Opinion : Lets see how other languages behave in such a situation : </span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">1. Ruby :</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">    > a = [1, 2]</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">    > a[100] = 100</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">    > a</span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px"> => [1, 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 100] </span></font></p><p style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both"><font color="#000000" face="Arial, Liberation Sans, DejaVu Sans, sans-serif"><span style="font-size:14px;line-height:17.804800033569336px">The way ruby handles this is pretty clear and sounds meaningful (and this is how I expected to behave and it behaved as per my expectation) at least to me . Here also it was silently handled but the way it fills non existing indexes in between with nil sounded meaningful .</span></font></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px">2. Java :</p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px">When I do such an action in java by using .add(index.value) on may be arraylist or linkedlist I get java.lang.IndexOutOfBoundException</p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px">Here instead of handling it silently it throws an error .</p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px"><br></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px">But the python way of handling such a problem by appending to the end sounds more unexpected to me . This in fact flummoxed me in the beginning making me think it could be a bug . Then when I raised it in stackoverflow I got chance to look at source and found that's the way code is written . </p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px">Question : 1. Any idea Why it has been designed to silently handle this instead of at least informing the user with an exception(as in java) or attaching null values in empty places (as in ruby) ?<br></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px"><br></p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px">Thanks</p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.804800033569336px">Harish</p></div>