2009-11-13 91 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 

這確實給你提到的輸出 - 這是你想要的嗎?