在Python中对包含字符串和数字值的三个平行列表进行排序
如何使用三个并行的数组列表进行排序:
num1 = ['a','b','c']
num2 = ['apple','pear','grapes']
num3 = [2.5, 4.0, 0.68]
我用了两个循环和一个条件判断。根据元素进行排序,输出应该是:
a apple 2.5
b pear 4.0
c grapes 0.68
不幸的是,我在使用元素交换排序时遇到了问题,特别是对第三个num3的值进行排序。有什么建议吗?
2 个回答
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
这个确实能给出你提到的输出——这就是你想要的吗?
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
结果是:
a 苹果 2.5 b 梨 4.0 c 葡萄 0.68