Python: Как распечатать значения с соответствующими ключами и отсортировать их? - PullRequest
0 голосов
/ 23 мая 2019

Предполагается, что мой код создаст другой словарь из существующего словаря синонимов, с удалением синонимов не более 7 символов, используя функцию remove_word () и принимая существующий словарь в качестве параметра.Он должен вернуть новый словарь с обновленными значениями, такими как:

{'slow' : ['leisurely', 'unhurried'], 'show' : ['communicate', 'manifest', 'disclose'], 'dangerous' : ['hazardous', 'perilous', 'uncertain']}

С помощью функции key_order () я хотел бы создать список ключей и использовать метод sort () для сортировки ключей по алфавитупорядок, затем переберите отсортированные ключи и распечатайте соответствующие значения.

Вывод должен выглядеть так, отсортированный в алфавитном порядке:

dangerous : ['hazardous', 'perilous', 'uncertain']
show : ['communicate', 'manifest', 'disclose']
slow : ['leisurely', 'unhurried']

Как мне выполнить это, не используя сложный синтаксис?

Код:

word_dict = {'show': ['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose'],
             'slow': ['unhurried', 'gradual', 'leisurely', 'late', 'behind', 'tedious', 'slack'],
             'dangerous': ['perilous', 'hazardous', 'uncertain']}

def main():
    edited_synonyms = remove_word(word_dict)
    key_order(edited_synonyms)

def remove_word(word_dict):
    dictionary = {}

    synonyms_list = word_dict.values()
    new_list = []
    for i in synonyms_list:
        new_list.append(i)

    for word in new_list:
        letter_length = len(word)
        if letter_length <= 7:
            new_list.pop(new_list.index(word))

    value = new_list 
    keys_only = word_dict.keys()
    key = keys_only
    dictionary[key] = value
    return dictionary


def key_order(word_dict):
    word_list = list(word_dict.keys())
    word_list.sort()
    for letter in word_list:
        value = word_list[letter]
        print(letter, ": ", value)

main()

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Вы можете использовать словарь и списки для достижения этого

word_dict = {'show': ['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose'],
         'slow': ['unhurried', 'gradual', 'leisurely', 'late', 'behind', 'tedious', 'slack'],
         'dangerous': ['perilous', 'hazardous', 'uncertain']}

new_word_dict = {k:[l for l in v if len(l) > 7] for k,v in word_dict.items()}
for key in sorted(new_word_dict.keys()):
    print(f"{key} : {new_word_dict[key]}")

выход

dangerous : ['perilous', 'hazardous', 'uncertain']
show : ['communicate', 'manifest', 'disclose']
slow : ['unhurried', 'leisurely']
0 голосов
/ 23 мая 2019

Просто переберите его:

for x in dict.keys():
    print(f'{x}: {dict[x]}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...