繁体   English   中英

如何对我在Python 3.3中附加的列表进行排序

[英]How do I sort a list that I have appended to in Python 3.3

我一直绞尽脑汁试图解决这个问题:

for line in test:
    x = line.split()
    y = int(x[1])
    x.append({"Average":str(y)})
    print(x)

这样做的是它附加了行平均值:y,作为一个例子,詹姆斯20 30 0 50然后它将打印给用户James 0 0 0 0 {Average: 0}这是我的问题:我的文本文档包含多个不同的名字和数字如下:

James 20 0 0 0 0
Harrison 7 0 0 0 0
George 9 0 0 0 0

如果有一个以上的数字超过0,我也计算平均值。当我追加平均值:y时,我想根据它们的'y'对整个列表进行排序,如果它是:

James 20 0 0 0 0 {Average: 20}
Harrison 7 0 0 0 0 {Average: 7}
George 9 0 0 0 0 {Average: 9}
Oliver 10 5 6 0 0 {Average: 7}

它会变成:

Harrison 7 0 0 0 0 {Average: 7}
Oliver 10 5 6 0 0 {Average: 7}
George 9 0 0 0 0 {Average: 9}
James 20 0 0 0 0 {Average: 20}

我无法弄清楚如何执行此操作,因为我逐个追加每一行,所以如果我尝试使用sort命令对其进行排序则不起作用。 我所做的是追加第一行 - >打印它 - >追加第二行 - >等......我怎么能根据附加的平均值对这个列表进行排序? 感谢您的阅读和帮助!

经过测试,希望它有效。 您可以使用追加功能获得更多项目。

test = ["Harrison 20 0 0", "George 40 0 0", "Zohan 30 0 0"]
foo = []
for line in test:
    x = line.split()
    y = int(x[1])
    foo.append({"Name":x[0],"Average":str(y)})
    print(x)
sorted_x = sorted(foo)
print sorted_x

问题是你在循环中打印。 首先整理结果,然后排序,然后打印。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM