你如何排序python命令的输出?

Kry*_*ten 2 python sorting sorted

Python初学者在这里.假设我的脚本末尾有一些东西,它从系统中查询信息并将其转储为这种格式:

print my_list_of_food(blah)
Run Code Online (Sandbox Code Playgroud)

并输出如下列表:

('Apples', 4, 4792320)
('Oranges', 2, 2777088)
('Pickles', 3, 4485120)
('Pumpkins', 1, 5074944)
('more stuff', 4545, 345345)
Run Code Online (Sandbox Code Playgroud)

然后,我如何根据第二个字段对输出进行排序,使其看起来像这样:

('Pumpkins', 1, 5074944)
('Oranges', 2, 2777088)
('Pickles', 3, 4485120)
('Apples', 4, 4792320)
Run Code Online (Sandbox Code Playgroud)

除了导入bash命令,cut -d "," -f 2 | head 4我宁愿使用python.我知道我可以使用sorted或sort来对现有的元组或字典进行排序,但我不确定如何对打印输出进行排序.我做了一些研究,一切都指向在我的脚本中实现排序而不是排序打印输出,但谁知道,也许有人有解决方案.谢谢.

更新:

感谢大家.我试图让所有解决方案都有效,但我一直收到这个错误:

File "test.py", line 18, in <lambda>
    print sorted(my_list_of_food(blah), key=lambda x: x[1])
TypeError: 'int' object is unsubscriptable

File "test.py", line 18, in <lambda>
    print(sorted(my_list_of_food(blah), key=lambda k: k[1]))
TypeError: 'int' object is unsubscriptable
Run Code Online (Sandbox Code Playgroud)

我试图在脚本的开头包含这个:

from __future__ import print_function 
Run Code Online (Sandbox Code Playgroud)

但没有运气.

Pet*_*ter 5

您可以使用键参数进行排序.在你的情况下,

print(sorted(list_of_food, key=lambda k:k[1]))
Run Code Online (Sandbox Code Playgroud)

会做的.键函数通常应该返回一个整数.