У меня есть словарь, в котором есть ключ (два префикса di git) и значение (список строк). Это выглядит примерно так:
prefixes = {
"AC" : ["england-wales"],
"OC" : ["england-wales", "wales"],
"SC" : ["scotland"],
"NC" : ["northern-ireland"]
}
Я пытаюсь создать список префиксов, в которых значение содержит область, указанную в списке.
Пропускаемая область может быть одна или другие регионы, например:
regions = ['england-wales', 'wales']
Итак, с помощью приведенных выше данных я хотел бы создать новый список с префиксами, и он будет содержать все префиксы, где либо 'wales', либо «Англия-Уэльс» включена в значение:
prefix_list = ['AC', 'OC']
Принимая во внимание, что если регионы просто равны «Уэльсу», то:
prefix_list = ['OC']
Я поиграл с несколькими вещами и Получилось это грязное решение:
combo_list = []
prefix_list = []
for r in regions:
combo_list.append([k for k, v in prefixes.items() if r in v])
for sublist in combo_list:
for i in sublist:
prefix_list.append(i)
prefix_list = sorted(set(prefix_list)) #This will remove duplicates for me
Я думаю, что должен быть лучший, «чище» способ сделать это, но я не могу понять это. Любая помощь приветствуется.