我想根据值获取字典键

-2 投票
1 回答
61 浏览
提问于 2025-04-14 18:24

我想要返回一个键,但首先要用值来进行比较。我想要得到的是键,而不是值。

lista_prefixos: List[Dict[str,str]] = [
                        {'RUA': ['RUA', 'R']}, 
                        {'PRAÇA': ['NOSSA', 'PRAヌA', 'PRACA', 'PCA', 'PC']}, {'TRAVESSA': ['TV']},
                        {'AVENIDA': ['AV', 'AVENIDA']}, {'VIA': 'VIA'}, {'MARGINAL': 'MARG'},
                        {'VIADUTO': ['VIAD', 'VIADUTO']}, {'RODOVIA': ['RODOVIA', 'ROD']},
                        {'ALAMEDA': ['AL', 'ALAMEDA']}, {'LARGO': ['LGO', 'LARGO']},
                        {'ESTRADA': ['ESTRADA', 'ESTR']})

def ajusta_dados(lista_prefixos: List[Dict[str,str]], busca_rua):
    lista_logradouro = []
    for x in lista_prefixos:
        RUA, PRAÇA, AVENIDA, VIADUTO, ALAMEDA,
        ESTRADA, TRAVESSA,VIA, MARGINAL, RODOVIA, LARGO = x.keys())
        if Rua_certa == x.keys():
            Rua_certa = x.values()```

1 个回答

1

试试这个:

from typing import List, Dict

lista_prefixos: List[Dict[str, List[str]]] = [
    {'RUA': ['RUA', 'R']},
    {'PRAÇA': ['NOSSA', 'PRAヌA', 'PRACA', 'PCA', 'PC']},
    {'TRAVESSA': ['TV']},
    {'AVENIDA': ['AV', 'AVENIDA']},
    {'VIA': ['VIA']},
    {'MARGINAL': ['MARG']},
    {'VIADUTO': ['VIAD', 'VIADUTO']},
    {'RODOVIA': ['RODOVIA', 'ROD']},
    {'ALAMEDA': ['AL', 'ALAMEDA']},
    {'LARGO': ['LGO', 'LARGO']},
    {'ESTRADA': ['ESTRADA', 'ESTR']}
]

def ajusta_dados(lista_prefixos: List[Dict[str, List[str]]], busca_rua: str) -> str:
    for prefixo in lista_prefixos:
        for key, values in prefixo.items():
            if busca_rua in values:
                return key
    return "Not Found"

# Example usage:
search_term = "LGO"
result = ajusta_dados(lista_prefixos, search_term)
print("Found:", result)

输出结果:

Found: LARGO

撰写回答