Как изменить значения моего словаря от типа списка к строковому типу - PullRequest
0 голосов
/ 12 марта 2020

Мне нужно go из этого вывода

3 ['and', 'may']
5 ['short']
6 ['coffee', 'monday', 'strong']

до этого вывода

3 and may
5 short
6 coffee monday strong

Это мой код:

dictionary = {6:['monday', 'coffee', 'strong'], 5:['short'], 3:['may', 'and']}

def print_keys_values_inorder(dictionary):
    for key in sorted(dictionary):
        print(key , sorted(dictionary[key]))

print_keys_values_inorder(dictionary)

как я могу преобразовать значения моего словаря, которые находятся в типе списка, в строковый тип?

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Вы можете попробовать следующее:

    dictionary = {6: ['monday', 'coffee', 'strong'], 5: ['short'], 3: ['may', 'and']}

    def print_keys_values_inorder(dictionary):
        for key in sorted(dictionary):
            print(key, ' '.join(map(str, sorted(dictionary[key]))))

    print_keys_values_inorder(dictionary)

ИЛИ, если вы хотите избежать использования карты, попробуйте это:

    dictionary = {6: ['monday', 'coffee', 'strong'], 5: ['short'], 3: ['may', 'and']}

    def print_keys_values_inorder(dictionary):
        for key in sorted(dictionary):
            print(key, *sorted(dictionary[key]))

    print_keys_values_inorder(dictionary)
0 голосов
/ 12 марта 2020

Вы можете использовать встроенную функцию print с генератором выражение :

d = {3: ['may', 'and'], 5: ['short'], 6: ['monday', 'coffee', 'strong']}

print(*(' '.join(str(e) for e in (k, *v)) for k, v in d.items()), sep='\n')

выход:

3 may and
5 short
6 monday coffee strong
...