我是dict结构的新手,我有以下内容:
d = {'a': 'aa', 'b': 'bb', 'c': 'cc', 'x':111, 'y': 222, 'z':333}
我想把它改成下面的结构:
d2 = {'a': 'aa', 'b': 'bb', 'cc':{ 'x':111, 'y': 222, 'z':333}}
基本上,给定key
的value
将成为key
本身,而后续的values
将作为嵌套dict进入此新键。x
、y
和z
的值仅是说明性的,它们可以是浮点数或整数。始终在c
键之后,将得到需要放入c
中的值。谢谢
5条答案
按热度按时间llycmphe1#
下面是适用于更一般情况的稍长的解决方案:
首先预定义输出字典,然后根据切片键标准拆分所有键的列表,最后组装新字典。
注意,这依赖于
keys()
返回的列表是有序的,现在应该是这样的,但是为了安全起见,您也可以对它进行排序,all_keys = list(sorted(d.keys()))
。z9ju0rcb2#
一个棘手的解决方案是使用pandas中的
pandas.DataFrame
* 构造函数 *:输出:
t5fffqht3#
这似乎是一个模糊的问题,应该提供更多关于约束/规则的细节。然而,有了给定的细节,这里有一段代码应该会帮助你解决这个问题。
上面的代码片段给出了以下输出:
toe950274#
提供的信息有限,并且不使用任何库
输出:
ijnw1ujt5#
假设您持有输入dict的插入顺序,使用
itertools.groupby
util获取基于c
键的顺序组的解决方案如下: