3

This may be an easy question, but could you tell me how I can print the last element in a range, please ? I did in this way:

for j in range (3):
    print(j[2:])      # I only wish to print 2 here

But it says

TypeError: 'int' object is not subscriptable

Could you tell me how to I can get it with this range function, please ?

user_01
  • 447
  • 3
  • 9
  • 16
  • 1
    If you don't need a `for` loop; just use `j = range(3)` instead of `for j in range(3)`. – zondo Apr 06 '17 at 02:51
  • I need to use for loop, unfortunately – user_01 Apr 06 '17 at 02:55
  • 1
    Possible duplicate of [Getting the last element of a list in Python](http://stackoverflow.com/questions/930397/getting-the-last-element-of-a-list-in-python) – McGrady Apr 06 '17 at 02:55
  • Then assign a variable before the loop, say `numbers = range(3)`; change the loop to `for j in numbers:`, and use `print(numbers[-1])` – zondo Apr 06 '17 at 02:56
  • Using a for loop makes no sense, since you don't need to iterate over the collection, you just need to get the last element. – Paul Rooney Apr 06 '17 at 02:59

3 Answers3

16

Range returns a list counting from 0 to 2 (3 minus 1) ([0, 1, 2]), so you can simply access the element directly from the range element. Index -1 refers to the last element.

print(range(3)[-1])
Neil
  • 14,063
  • 3
  • 30
  • 51
2

I the range is in your collection you should be able to reference that object directly by the index.

if len(j) > 2:
    print("Value: " + j[2])
AgnosticDev
  • 1,843
  • 2
  • 20
  • 36
0

This loop will go through the list and check if it is the last item, if true, then print the message underneath.

num_list = [28, 27, 26, 25, 24, 23, 22]
 
 for i in range(len(num_list)):

    print(num_list[i])
    if num_list[-1] == num_list[i]:
        print ('last number: ' + str(num_list[i]))`
Koops
  • 422
  • 3
  • 11