簡體   English   中英

如何使用字符串查找特定的python字典鍵

[英]How to find a specific python dictionary key with a string

如何將 general_key_array 中的鍵名與 all_keys 字典匹配以獲得“aws”。 作為子串? 我添加了startswith部分,但它一直返回True。

general_keys = dict()
all_keys = {'activity': 'ins','install': 'all','aws.a': 'data', 'aws.b': 'data1', 'aws.c': 'data2'} #read from file
general_key_array = ['install', 'aws.']
    
for key in general_key_array:
    if key.startswith(key) in all_keys:
        general_keys[key] = dict(filter(lambda item: key in item[0], all_keys.items()))

您可以使用單個字典理解來完成所有操作。

general_keys = {key: value for key, value in all_keys.items() 
                if any(key.startswith(gk) for gk in general_key_array)}

key.startswith(key)總是等於True因為字符串以自身開頭是同義反復的。

你可以在你寫的第一個之后添加一個帶有all_keys鍵的 for 循環來解決這樣的問題

general_keys = dict()
all_keys = {'activity': 'ins','install': 'all','aws.a': 'data', 'aws.b': 'data1', 'aws.c': 'data2'} 
general_key_array = ['install', 'aws.']
    
for key in general_key_array:
    for s in all_keys :
        if s.startswith(key): # s is part of all_keys, no tautology here
            general_keys[key] = dict(filter(lambda item: key in item[0], all_keys.items()))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM