0

Hi, I want to sort a tuple consisting of two floats and one array by the absolute value of the first float in reverse order. What I did is the following:

from numpy import *

test = [(-0.02, 100.2, array([1, 0, 0])), 
            (-4.02, 300.4, array([1, 1, 0])), 
            (3.57, 503.7, array([1, 0, 1])), 
            (0.01, 700.0, array([0, 0, 0]))]

for f in range(len(test)):
sorted(test[f], key=lambda item: abs(item[0]), reverse=True)

TypeError: 'float' object is unsubscriptable

Any ideas?
awa

3
Contributors
3
Replies
4
Views
7 Years
Discussion Span
Last Post by leegeorg07
0

Hi, I want to sort a tuple consisting of two floats and one array by the absolute value of the first float in reverse order. What I did is the following:

from numpy import *

test = [(-0.02, 100.2, array([1, 0, 0])), 
            (-4.02, 300.4, array([1, 1, 0])), 
            (3.57, 503.7, array([1, 0, 1])), 
            (0.01, 700.0, array([0, 0, 0]))]

for f in range(len(test)):
sorted(test[f], key=lambda item: abs(item[0]), reverse=True)

TypeError: 'float' object is unsubscriptable

Any ideas?
awa

Try

from numpy import *

test = [(-0.02, 100.2, array([1, 0, 0])), 
            (-4.02, 300.4, array([1, 1, 0])), 
            (3.57, 503.7, array([1, 0, 1])), 
            (0.01, 700.0, array([0, 0, 0]))]

print sorted(test, key=lambda item: abs(item[0]), reverse=True)
0

Thanks, so close but I wouldn't have thought about it for quite a time...

This question has already been answered. Start a new discussion instead.
Be sure to adhere to our posting rules.