0

Why the output list is not ordered? Kindly Help.

Shouldn't the output list be in ascending order? https://code.sololearn.com/chV9uErJsltP/?ref=app

26th Oct 2018, 2:51 PM
Pushkar Raj
Pushkar Raj - avatar
3 ответов
+ 3
1. Everything Anna said. 2. Why the output is not ordered: index(i) finds the first occurrence of i in the list. Here's how things happen in each step. list = [1,2,3,4,5,6,7,8,9,10] i=1. list.index(i)=0. list[0]=1 i=2. list.index(i)=1. list[1]=4 i=3. list.index(i)=2. list[2]=9 i=4. list.index(i)=1. list[1]=16 # problem i=5. list.index(i)=4. list[4]=25 i=6. list.index(i)=5. list[5]=36 i=7. list.index(i)=6. list[6]=49 i=8. list.index(i)=7. list[7]=64 i=9. list.index(i)=2. list[2]=81 # problem i=10. list.index(i)=9. list[9]=100 In particular, list[1] = 16, list[2] = 81, list[3] =4, and list[8] = 9 (the last two are never altered). Your new list is [1, 16, 81, 4, 25, 36, 49, 64, 9, 100]
26th Oct 2018, 6:36 PM
Kishalaya Saha
Kishalaya Saha - avatar
+ 8
That's a strange way to iterate over a list 🤔 Why not use for i in range(len(list)): list[i] = ...? (btw, 'list' is a python keyword and shouldn't be used as a name for a variable)
26th Oct 2018, 3:44 PM
Anna
Anna - avatar
+ 1
Kishalaya Saha you said "index(i) finds the first occurrence of i in the list." I got it. That solves the problem. Thanks 😊👍
27th Oct 2018, 4:11 AM
Pushkar Raj
Pushkar Raj - avatar