我有一个列表ListA
:
ListA = [ 'Key1: test1', 'Key2: test2', 'Key3: test3']
我想做的是我想要搜索一个特定的值到它各自的键。例如:如果用户输入test1
,它应该返回给我Key1
或如果用户输入test3
,它应该返回Key3
。我在网上研究了很多,但似乎很多人都在谈论比较两个不同的列表,而不是比较同一个列表。我对编程还是个新手,所以我想问一下我的想法是不是很糟糕?这是一种更好的方法吗?
按照原来的方式解决问题:
from typing import Dict, List
ListA = ['Key1: test1', 'Key2: test2', 'Key3: test3']
def get_key_from_value_list(target_list: List, target_value: str):
for entry in target_list:
key, list_value = entry.split(":")
if target_value == list_value.strip():
return key
print("List:", get_key_from_value_list(ListA, "test1"))
结果:
List: Key1
但是考虑到你提到你正在反序列化JSON,你最好使用Python中实际的json
模块来解析它,这样你就可以得到一个实际的dict
对象,这比处理列表要容易得多。这样做需要:
from typing import Dict, List
import json
dict_a = json.loads('{"Key1": "test1","Key2": "test2","Key3": "test3"}')
def get_key_from_value_dict(target_dict: Dict, target_value: str):
for key, value in target_dict.items():
if target_value == value:
return key
print("Dict: ", get_key_from_value_dict(dict_a, "test1"))
结果:
Dict: Key1