Функция которая будет возвращать список, в который записаны последовательно ключи и значения

Написать функцию flatten_dict(d), принимающую на вход словарь d и возвращающую список, в который записаны последовательно ключи и значения словаря d (порядок следования ключей не важен, но после каждого ключа должно идти значение, которое ему соответствует). Например, flatten_dict({'Alice':1, 'Bob':2}) может вернуть список ['Alice', 1, 'Bob', 2] или список ['Bob', 2, 'Alice', 1].

Я написал следующий код:

def flatten_dict(d):
    new_dict = []
    keyz = [i for i in d.keys()]
    valuez = [i for i in d.values()]
    i = 0
    while len(new_dict) != len(keyz) + len(valuez):
       new_dict.append(keyz[i])
       new_dict.append(valuez[i])
       i += 1
    return new_dict

Он работает, но уверен, можно было бы сделать лаконичнее.


Ответы (2 шт):

Автор решения: Alexander Chernin
def flatten_dict(d):
    new_dict = []
    for k, v in d.items():
       new_dict.append(k)
       new_dict.append(v)
    return new_dict
→ Ссылка
Автор решения: CrazyElf

Можно вообще в одну строку:

def flatten_dict(d):
    return [x for y in d.items() for x in y]

Результат:

['Alice', 1, 'Bob', 2]
→ Ссылка