Функция которая будет возвращать список, в который записаны последовательно ключи и значения
Написать функцию
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]