1

I want to turn my array which consists out of 2 lists into a ranked list. Currently my code produces :

[['txt1.txt' 'txt2.txt' 'txt3.txt' 'txt4.txt' 'txt5.txt' 'txt6.txt'
  'txt7.txt' 'txt8.txt']
 ['0.13794219565502694' '0.024652340886571225' '0.09806335128916213'
  '0.07663118536707426' '0.09118273488073968' '0.06278926571143634'
  '0.05114729750522118' '0.02961812647701087']]

I want to make it so that txt1.txt goes with the first value, txt2 goes with the second value etc.

So something like this

[['txt1.txt', '0.13794219565502694'], ['txt2.txt', '0.024652340886571225']... etc ]]

I do not want it to become tuples by using zip.

My current code:

def rankedmatrix():
    matrix = numpy.array([names,x])
    ranked_matrix = sorted(matrix.tolist(), key=lambda score: score[1], reverse=True)
    print(ranked_matrix)

Names being : names = ['txt1.txt', 'txt2.txt', 'txt3.txt', 'txt4.txt', 'txt5.txt', 'txt6.txt', 'txt7.txt', 'txt8.txt']

x being:

x = [0.1379422 0.01540234 0.09806335 0.07663119 0.09118273 0.06278927 0.0511473 0.02961813]

Any help is appreciated.

2 Answers 2

1

You can get the list of lists with zip as well:

x = [['txt1.txt', 'txt2.txt', 'txt3.txt', 'txt4.txt', 'txt5.txt', 'txt6.txt'
  'txt7.txt', 'txt8.txt'], ['0.13794219565502694', '0.024652340886571225', '0.09806335128916213',
  '0.07663118536707426', '0.09118273488073968', '0.06278926571143634',
  '0.05114729750522118', '0.02961812647701087']]
res = [[e1, e2] for e1, e2 in zip(x[0], x[1])]
print(res)

Output:

[['txt1.txt', '0.13794219565502694'], ['txt2.txt', '0.024652340886571225'], ['txt3.txt', '0.09806335128916213'], ['txt4.txt', '0.07663118536707426'], ['txt5.txt', '0.09118273488073968'], ['txt6.txttxt7.txt', '0.06278926571143634'], ['txt8.txt', '0.05114729750522118']]
Sign up to request clarification or add additional context in comments.

Comments

1

You can use map to convert the tuple to list.

list(map(list, zip(names, x)))
[['txt1.txt', 0.1379422],
 ['txt2.txt', 0.01540234],
 ['txt3.txt', 0.09806335],
 ['txt4.txt', 0.07663119],
 ['txt5.txt', 0.09118273],
 ['txt6.txt', 0.06278927],
 ['txt7.txt', 0.0511473],
 ['txt8.txt', 0.02961813]]

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.