gpt4 book ai didi

python - 将字典转换为列表

转载 作者:太空狗 更新时间:2023-10-29 18:14:47 24 4
gpt4 key购买 nike

例子:

something = {
"1": {
"2": {
"3": {
"4": {},
"5": {},
"7": {},
},
"8": {
"9": {},
"10": {}
},
"11": {
"12": {
"13": {
"14": {
"15": {
"16": {
"17": {
"18": {}
}
}
}
}
}
}
}
}
}
}

我正在尝试将这本字典转换成这样的项目列表:

['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18']

我应该使用什么方法?

我已经尝试过 something.items(),但我得到的结果是:

[('1', {'2': {'11': {'12': {'13': {'14': {'15': {'16': {'17': {'18': {}}}}}}}}, '8': {'9': {}, '10': {}}, '3': {'5': {}, '4': {}, '7': {}}}})]

这是我第一次在这里发帖,所以如果我做错了什么,请告诉我。

谢谢你,对这个奇怪的帖子感到抱歉。

最佳答案

您需要使用一个函数来展平您的结构:

def flatten(d):
for key, value in d.iteritems():
yield key
for sub in flatten(value):
yield sub

(如果您使用的是 Python 3,则 .iteritems() 应替换为 .items())。

在 python 3.3 和更新版本上,您还可以使用新的 yield from syntax :

def flatten(d):
for key, value in d.items():
yield key
yield from flatten(value)

这将递归地产生所有的键。要将其转换为列表,请使用:

list(flatten(elements))

由于 Python 字典是无序的,因此返回键的顺序不会被排序。如果您希望 key 具有特定的顺序,则必须明确地对结果进行排序。

关于python - 将字典转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13473433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com