Python:只保存最新登录到fi

2024-03-29 08:19:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个项目,我需要处理大的访问日志,并获得一个所有用户的最后登录尝试列表。在处理日志时,我得到了这样的结果:

[user1, <last login recorded>, <current login>]
[user2, <no last login recorded>, <current login>]
[user1, <last login recorded>, <current login>]
[user3, <last login recorded>, <current login>]

如您所见,同一个用户记录了多次登录。我只想得到最新登录的最终名单。你知道吗

我使用datetime对象进行登录,因此比较当前登录和最后登录很容易,但我的问题是:如何临时保存当前最新登录并将其与下一个登录进行比较?你知道吗

简化代码如下所示

final_list = []
for login in log_file:
    login = login.split(';')
    last_login = get_last_login() #ldap search for the user last login
    if last_login:
        final_list.append([login[0], last_login, login[1]])
    else:
        final_list.append([login[0], 'no_last_login_recorded', login[1]])

因此,如果我将每个登录添加到最终的\u列表[],是否有方法检查用户是否已经在其中,并将当前登录与列表中的登录进行比较?你知道吗


Tags: 项目no用户列表forlogincurrentlist
1条回答
网友
1楼 · 发布于 2024-03-29 08:19:22

正如@gkunser所指出的,您可以简单地给我们一个字典({}),为用户键入如下内容:

final_list = {}
for login in log_file:
    login = login.split(';')
    last_login = get_last_login();
    if last_login:
       final_list[login[0]] = (last_login, login[1]])
    ...

这样,您将自动覆盖用户登录信息

[这个伪代码用来表示一个不正确的集合]

相关问题 更多 >