简体   繁体   English

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

[英]How to print all values specific of a key?

Trying to print all values associated a one key, for example: 尝试打印与一个键关联的所有值,例如:

Search by marcus, I'd like to return 5 lines. 按马库斯搜索,我想返回5行。

Dict: 词典:

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'}

I dont know, if it is the most simple way, but is only return the last line. 我不知道,如果这是最简单的方法,但只返回最后一行。

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

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

I suspect you have been adding items to a dictionary, and a dictionary can only have unique keys. 我怀疑您一直在向字典添加项目,并且字典只能具有唯一键。 Consider: 考虑:

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)

Output (matches described behavior): 输出(匹配描述的行为):

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

Though it looks like there are multiples, a dictionary is only going to keep the last entry of a unique key. 虽然看起来像是倍数,但是字典只会保留唯一键的最后一个条目。 If you need multiple instances of the same name, you need a different structure. 如果需要具有相同名称的多个实例,则需要不同的结构。 Instead of a (suspected) dict of dicts, use a list of dicts: 代替(可疑的)命令,使用命令列表:

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)

Output: 输出:

{'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'}

Another option is a dict of lists, appending each infodict in the value of the user key: 另一个选项是列表的字典,将每个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)

Output: 输出:

{'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'}

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

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