I have two lists I want to sort. The first list contains ids and genres strings:
ids_and_genres = [
(u'spotify:track:7ac8sivblLQjsQipO5FZ63', u'bossa nova'),
(u'spotify:track:4r8uJGqC1tB16592dPrJA8', u'sertanejo pop'),
(u'spotify:track:6A07yoIkMuRuMVHMlpKx5e', u'deep funk carioca'),
(u'spotify:track:6jPkYQ3B7b753JTZhR207H', u'rock gaucho'),
(u'spotify:track:5ggZKufUobrPQATp4URED4', u'rap'),
(u'spotify:track:2C5WKzZ28VrAnMRo7CaTDe', u'baile pop'),
(u'spotify:track:59UvKSCJLFDsGOSESlzfAg', u'samba'),
(u'spotify:track:4JWvILyOVmhPqXgSSjVB4p', u'brazilian reggae'),
(u'spotify:track:0cbbgNAPNI8ylaFE0te1yw', u'grime'),
(u'spotify:track:0ZoJ7jZBHY6SjhbClU7p2B', u'forro'),
(u'spotify:track:6Du0r4fahau45X9bkXIIjB', u'baile funk'),
(u'spotify:track:10KJMfYgg6CORIhtkPn04i', u'mpb'),
(u'spotify:track:2D6xFqZdBfdXndPQV4GBLm', u'brazilian hip hop'),
(u'spotify:track:3LO1I8lQSsXD6gVdU9KZA1', u'brazilian electronica'),
(u'spotify:track:34646YmFkOhjWcBLhLhIoC', u'pagode'),
(u'spotify:track:49usrgIx7kiHYIFWxzYgIC', u'sertanejo tradicional'),
(u'spotify:track:0gFm2Uv3wveMbcqbdNvr2N', u'hip hop tuga'),
(u'spotify:track:4UhSLr0vsqzV88uixMt7ca', u'brazilian punk'),
(u'spotify:track:0XcuBfglpHdhOoIdaSEjAv', u'brazilian rock'),
(u'spotify:track:6JRUorZc2SfckySosQKSkz', u'hip hop'),
(u'spotify:track:6xR9X79wQ2RGQCK0oBeSnt', u'axe'),
(u'spotify:track:6lGieRasxAycezIC93ofXM', u'sertanejo'),
(u'spotify:track:3QhJAGDdxt749dFveYVy4M', u'sertanejo universitario')
]
and the second list contains genres and other values
genres_and_other_values = [
([u'mpb ', u' 3532', u' 808'], 306.413119823548),
([u'samba ', u' 3622', u' 839'], 392.8612986793176),
([u'forro ', u' 2987', u' 837'], 422.0011848324599),
([u'sertanejo tradicional ', u' 2926', u' 875'], 493.62738983974543),
([u'pagode ', u' 2753', u' 828'], 621.342095789429),
([u'bossa nova ', u' 3980', u' 864'], 713.6504746723007),
([u'sertanejo ', u' 2563', u' 801'], 791.6091207155208),
([u'baile pop ', u' 2461', u' 917'], 925.3783010207231),
([u'sertanejo universitario ', u' 2399', u' 812'], 952.9249708135474),
([u'rock gaucho ', u' 2337', u' 688'], 992.5693930401038),
([u'brazilian rock ', u' 2281', u' 570'], 1043.0810131528615),
([u'brazilian punk ', u' 2217', u' 389'], 1123.8705441464333),
([u'axe ', u' 2186', u' 853'], 1169.5913816371938),
([u'brazilian hip hop ', u' 2237', u' 1069'], 1190.699374317464),
([u'sertanejo pop ', u' 2111', u' 805'], 1233.1475986271878),
([u'hip hop tuga ', u' 1963', u' 971'], 1415.2261303410137),
([u'hip hop ', u' 1974', u' 1088'], 1441.3622029177816),
([u'rap ', u' 1773', u' 1076'], 1627.4673575835554),
([u'deep funk carioca ', u' 1825', u' 1233'], 1633.86076518166),
([u'grime ', u' 1556', u' 949'], 1805.4860841335776),
([u'brazilian reggae ', u' 1509', u' 1235'], 1928.5561957070372),
([u'baile funk ', u' 871', u' 1185'], 2525.7895795176605),
([u'brazilian electronica ', u' 722', u' 1260'], 2688.6303204419905)
]
which I want to sort into a new list, respecting the order of the second list, ending up with:
sorted = [['mpb', u'spotify:track:10KJMfYgg6CORIhtkPn04i'],[...]]
I have tried, to no avail:
for item in genres_and_other_values:
values = item[0]
genre = values[0]
for i in ids_and_genres:
gen = i[1]
id_ = i[0]
if genre == gen:
print (genre,id_)
The snippet above fails silently...
What is the best way of achieving my desired result?