+ 1
Can Anyone explain the output of these step by step ?
sqs = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] print(sqs[7:5:-1])
4 Answers
+ 9
The 1 after the (-) tells the steps taken backwards.
sqs[start:stop:step] so step is negate so it will traverse list in backward direction.
sqs[7:5:-1]
This is similar to range but here start is 7, stop is 5 and step size is -1. Hence it generates a descending order list. Now the values it generates are :
[7, 6]
5 is not counted because, stop =5 and we have to consider only upto stop-1, i.e 5-(-1) = 6.
This is how it works.
Now at 7 index 49 and 6 index 36 is printed
[49 36]
Slice step could be both positive and negative. So you can walk throught the list forward or backward. That is why you have
>>> sqs = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> print(sqs[7:5:-1])
[49, 36]
+ 8
Here is some more slicing concept which can help you in all ways.
https://www.sololearn.com/Discuss/2130822/?ref=app
+ 4
sqs = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(sqs[7:5:-1])
# result is: [49, 36]
sqs[7:5:-1]) is a slice with list sqs.
List sqs:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] values
0 1 2 3 4 5 6 7 8 9 index
-1 means, that the iteration starts at the end of the list and going backwards. It starts at index 7 and ends at index 5, but not including 5. So it's just index 7 (49) and index 6 (36).
+ 1
It prints a list starting from the 7th index of sqs, up till the 5th index. It goes in the backwards direction because the steps specified is -1.