2009-11-13 68 views
0

字符串和数值如何使用3名平行阵列列表以排序3平行列表:排序,其包括在Python

NUM1 = [ 'A', 'B', 'C']
NUM2 = [ '苹果','梨','葡萄']
num3 = [2.5,4.0,.68]

我用2作为语句,后跟if语句。通过元素排序输出应为:

一个苹果2.5
b梨4.0
Ç葡萄0.68

不幸的是,我有排序使用交换排序元素中的第三NUM3值的问题。任何想法

+1

它看起来像是交错列表。是否有分拣涉及? – 2009-11-13 03:06:43

+2

这是功课吗? – tom10 2009-11-13 03:12:52

+0

-1:并行列表是一个错误(当然,除非这是作业)。你为什么不先把它们合并成元组? – 2009-11-13 12:25:37

回答

2

既然你说列表是并行的,那就让我们把它们分组成元组,然后对元组列表进行排序。

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 

结果是:

一个苹果2.5 b梨4.0ç葡萄0.68

1

从你期望的输入和输出它似乎没有任何你想要的排序 - 只需:

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 

这确实给你提到的输出 - 这是你想要的吗?