Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我想对字典键中的整数进行排序_Python_Python 3.x_Dictionary - Fatal编程技术网

Python 我想对字典键中的整数进行排序

Python 我想对字典键中的整数进行排序,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我创建了一个程序来接收餐厅预订信息,但我想按时间顺序对预订进行排序 函数将-txt.file作为参数,文件内容遵循以下结构- “姓名”、“时间”、“状态”(“状态”已确认或已取消)。它只应显示已确认的预订,并按“时间”对其进行排序。到目前为止,我已经能够显示预订,但我只是不知道如何排序 def show_reservations(filename): with open(filename) as file: content = file.readlines()

我创建了一个程序来接收餐厅预订信息,但我想按时间顺序对预订进行排序

函数将
-txt.file
作为参数,文件内容遵循以下结构-
“姓名”、“时间”、“状态”
“状态”
已确认或
已取消
)。它只应显示
已确认的
预订,并按
“时间”
对其进行排序。到目前为止,我已经能够显示预订,但我只是不知道如何排序

def show_reservations(filename):
    with open(filename) as file:
        content = file.readlines()

    for reservation in content:
        dictionary = {}
        if ", CONFIRMED" in reservation:
            dictionary.setdefault(reservation[:-12], "CONFIRMED")
            empty_list = []
            for k, v in dictionary.items():
                print(k)


print(show_reservations(blabla.txt))
-txt.file的任意内容:

MARTIN, 19, CONFIRMED
JULIE, 18, CONFIRMED
METTE, 17, CANCELLED
期望输出:

JULIE, 18
MARTIN, 19

如果您将每个保留存储为一个包含两个键值对的字典,并将它们存储到一个列表中,则下面的代码可以工作

sorted()允许您对预订列表进行排序。然后可以通过使用lambda指定排序因子来选择排序因子。:)

输出:

JO, 16
JULIE, 18
MARTIN, 19
CHARLIE, 20

很抱歉,我们只能接受文本形式的代码,不能接受图像形式的代码。不是每个人都能阅读图像(它们可能被封锁在自己的位置,或者它们使用屏幕阅读器,或者是一个搜索引擎,想要索引源代码)。@Pierre.Vriens抱歉,哪部分?@Pierre.Vriens除了复杂的lambda之外,我还添加了一些评论供您理解,如果您在理解循环和dict如何工作方面有困难:)这是黄金。我现在明白了。非常感谢你!这非常有帮助。我希望我的帖子很容易理解,因为这是我第一次在Stackoverflow上发帖。谢谢。@ChrisBanniq这也是我第一次,很高兴我能帮上忙:)
JO, 16
JULIE, 18
MARTIN, 19
CHARLIE, 20