2009-11-13 5 views
0

la façon de trier en utilisant les 3 listes de réseaux parallèles:Tri d'une liste 3 parallèle qui comprend des chaînes et des valeurs numériques dans python

num1 = [ 'a', 'b', 'c,']
num2 = [ 'apple', 'pear', 'raisins']
num3 = [2.5,4.0, .68]

J'ai utilisé 2 pour les instructions suivies d'une instruction if. Tri par les éléments de la sortie doit être:

une pomme 2,5
b poire 4.0
c raisins .68

malheureusement, j'ai des problèmes avec le tri des valeurs 3e NUM3 en utilisant le type permutation élément. Toutes les idées

+1

Il semble que vous entrelacez les listes. Est-ce que le tri est impliqué? –

+2

Est-ce que ce sont les devoirs? – tom10

+0

-1: Les listes parallèles sont une erreur (à moins, bien sûr, que ce soit des devoirs). Pourquoi ne les fusionnes-tu pas d'abord avec les tuples? –

Répondre

2

Puisque vous dites que les listes sont parallèles, regroupons-les en tuples, puis trie la liste des tuples.

num1 = ['a','b','c'] 
num2 = ['apple','pear','grapes'] 
num3 = [2.5,4.0,.68] 

lst = zip(num1, num2, num3) 
lst.sort() 

for x1, x2, x3 in lst: 
    print x1, x2, x3, 

print 

Le résultat est:

une pomme 2,5 b 4,0 c poire raisins 0,68

1

A partir de vos entrées souhaitées et la sortie, il ne semble que vous voulez pas le tri - juste:

num1 = ['a','b','c'] 
num2 = ['apple','pear','grapes'] 
num3 = [2.5,4.0,.68] 
for item in [x for t in zip(num1, num2, num3) for x in t]: 
    print item, 
print 

Cela donne la sortie que vous mentionnez - est-ce ce que vous voulez?