如何打印键的所有特定值?

2024-10-01 07:36:35 发布

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

尝试打印与一个键关联的所有值,例如:

由马库斯搜索,我想返回5行

口述:

marcus {'TIME': 'Mar  3 15:49:33', 'CONNECTION': 'logout'}
fabin {'TIME': 'Mar  3 00:20:16', 'CONNECTION': 'login'}
marcus {'TIME': 'Mar  3 15:49:29', 'CONNECTION': 'logout'}
peter {'TIME': 'Mar  3 13:36:16', 'CONNECTION': 'logout'}
marcus {'TIME': 'Mar  3 14:28:56', 'CONNECTION': 'logout'}
peter {'TIME': 'Mar  3 02:17:34', 'CONNECTION': 'logout'}
marcus {'TIME': 'Mar  3 18:12:50', 'CONNECTION': 'logout'}
fabin {'TIME': 'Mar  3 22:50:15', 'CONNECTION': 'logout'}
peter {'TIME': 'Mar  3 15:14:16', 'CONNECTION': 'logout'}
marcus {'TIME': 'Mar  3 08:19:17', 'CONNECTION': 'login'}
peter {'TIME': 'Mar  3 15:16:45', 'CONNECTION': 'logout'}
fabin {'TIME': 'Mar  3 15:30:10', 'CONNECTION': 'logout'}
carl {'TIME': 'Mar  3 15:49:33', 'CONNECTION': 'logout'}

我不知道,如果这是最简单的方式,但只是返回最后一行

for k,v in dict.items():
 if user in k:
  print v

output: marcus {'TIME': 'Mar  3 08:19:17', 'CONNECTION': 'login'}

Tags: infortime方式loginitemsconnectiondict
1条回答
网友
1楼 · 发布于 2024-10-01 07:36:35

我怀疑你一直在给字典添加条目,而字典只能有唯一的键。考虑:

D = {'marcus':{'TIME': 'Mar  3 15:49:33', 'CONNECTION': 'logout'},
     'fabin':{'TIME': 'Mar  3 00:20:16', 'CONNECTION': 'login'},
     'marcus':{'TIME': 'Mar  3 15:49:29', 'CONNECTION': 'logout'},
     'peter':{'TIME': 'Mar  3 13:36:16', 'CONNECTION': 'logout'},
     'marcus':{'TIME': 'Mar  3 14:28:56', 'CONNECTION': 'logout'},
     'peter':{'TIME': 'Mar  3 02:17:34', 'CONNECTION': 'logout'},
     'marcus':{'TIME': 'Mar  3 18:12:50', 'CONNECTION': 'logout'},
     'fabin':{'TIME': 'Mar  3 22:50:15', 'CONNECTION': 'logout'},
     'peter':{'TIME': 'Mar  3 15:14:16', 'CONNECTION': 'logout'},
     'marcus':{'TIME': 'Mar  3 08:19:17', 'CONNECTION': 'login'},
     'peter':{'TIME': 'Mar  3 15:16:45', 'CONNECTION': 'logout'},
     'fabin':{'TIME': 'Mar  3 15:30:10', 'CONNECTION': 'logout'},
     'carl':{'TIME': 'Mar  3 15:49:33', 'CONNECTION': 'logout'}}

for k,v in D.items():
    print(k,v)
    if k == 'marcus':
        print(v)

输出(与描述的行为匹配):

{'TIME': 'Mar  3 08:19:17', 'CONNECTION': 'login'}

虽然看起来有多个,但字典只保留唯一键的最后一个条目。如果需要相同名称的多个实例,则需要不同的结构。不要使用一个(可疑的)dict,而是使用一个dict列表:

L = [{'NAME':'marcus','TIME':'Mar  3 15:49:33','CONNECTION':'logout'},
     {'NAME':'fabin','TIME':'Mar  3 00:20:16','CONNECTION':'login'},
     {'NAME':'marcus','TIME':'Mar  3 15:49:29','CONNECTION':'logout'},
     {'NAME':'peter','TIME':'Mar  3 13:36:16','CONNECTION':'logout'},
     {'NAME':'marcus','TIME':'Mar  3 14:28:56','CONNECTION':'logout'},
     {'NAME':'peter','TIME':'Mar  3 02:17:34','CONNECTION':'logout'},
     {'NAME':'marcus','TIME':'Mar  3 18:12:50','CONNECTION':'logout'},
     {'NAME':'fabin','TIME':'Mar  3 22:50:15','CONNECTION':'logout'},
     {'NAME':'peter','TIME':'Mar  3 15:14:16','CONNECTION':'logout'},
     {'NAME':'marcus','TIME':'Mar  3 08:19:17','CONNECTION':'login'},
     {'NAME':'peter','TIME':'Mar  3 15:16:45','CONNECTION':'logout'},
     {'NAME':'fabin','TIME':'Mar  3 15:30:10','CONNECTION':'logout'},
     {'NAME':'carl','TIME':'Mar  3 15:49:33','CONNECTION':'logout'}]

for d in L:
    if d['NAME'] == 'marcus':
        print(d)

输出:

{'NAME': 'marcus', 'TIME': 'Mar  3 15:49:33', 'CONNECTION': 'logout'}
{'NAME': 'marcus', 'TIME': 'Mar  3 15:49:29', 'CONNECTION': 'logout'}
{'NAME': 'marcus', 'TIME': 'Mar  3 14:28:56', 'CONNECTION': 'logout'}
{'NAME': 'marcus', 'TIME': 'Mar  3 18:12:50', 'CONNECTION': 'logout'}
{'NAME': 'marcus', 'TIME': 'Mar  3 08:19:17', 'CONNECTION': 'login'}

另一个选项是列表的dict,将每个infodict附加到用户键的值中:

D = {'marcus':[{'TIME':'Mar  3 15:49:33','CONNECTION':'logout'},
               {'TIME':'Mar  3 15:49:29','CONNECTION':'logout'},
               {'TIME':'Mar  3 14:28:56','CONNECTION':'logout'},
               {'TIME':'Mar  3 18:12:50','CONNECTION':'logout'},
               {'TIME':'Mar  3 08:19:17','CONNECTION':'login'}],
     'fabin':[{'TIME':'Mar  3 00:20:16','CONNECTION':'login'},
              {'TIME':'Mar  3 22:50:15','CONNECTION':'logout'},
              {'TIME':'Mar  3 15:30:10','CONNECTION':'logout'}],
     'peter':[{'TIME':'Mar  3 13:36:16','CONNECTION':'logout'},
              {'TIME':'Mar  3 02:17:34','CONNECTION':'logout'},
              {'TIME':'Mar  3 15:14:16','CONNECTION':'logout'},
              {'TIME':'Mar  3 15:16:45','CONNECTION':'logout'}],
     'carl':[{'TIME':'Mar  3 15:49:33','CONNECTION':'logout'}]}

for item in D['marcus']:
    print(item)

输出:

{'TIME': 'Mar  3 15:49:33', 'CONNECTION': 'logout'}
{'TIME': 'Mar  3 15:49:29', 'CONNECTION': 'logout'}
{'TIME': 'Mar  3 14:28:56', 'CONNECTION': 'logout'}
{'TIME': 'Mar  3 18:12:50', 'CONNECTION': 'logout'}
{'TIME': 'Mar  3 08:19:17', 'CONNECTION': 'login'}

相关问题 更多 >