我正在打印一些列表,但这些值没有排序。
for f, h, u, ue, b, be, p, pe, m, me in zip(filename, human_rating, rating_unigram, percentage_error_unigram, rating_bigram, percentage_error_bigram, rating_pos, percentage_error_pos, machine_rating, percentage_error_machine_rating):
print "{:>6s}{:>5.1f}{:>7.2f}{:>8.2f} {:>7.2f} {:>7.2f} {:>7.2f} {:>8.2f} {:>7.2f} {:>8.2f}".format(f,h,u,ue,b,be,p,pe,m,me)
根据“文件名”中的值对所有这些列表进行排序的最佳方法是什么?
如果:
filename = ['f3','f1','f2']
human_rating = ['1','2','3']
etc.
然后排序会返回:
filename = ['f1','f2','f3']
human_rating = ['2','3','1']
etc.
最佳答案
我会压缩然后排序:
zipped = zip(filename, human_rating, …)
zipped.sort()
for row in zipped:
print "{:>6s}{:>5.1f}…".format(*row)
如果你真的想取回单独的列表,我会按上面的方式对它们进行排序,然后解压缩它们:
filename, human_rating, … = zip(*zipped)
关于python - 基于python中的单个列表对多个列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11601961/