gpt4 book ai didi

python - if else 使用 python 列表推导嵌套 for 循环

转载 作者:行者123 更新时间:2023-11-28 21:04:41 24 4
gpt4 key购买 nike

谁能帮我想出产生以下输出的列表理解方式 -

令给定列表为 -

results = [
{"id": 1, "name": "input"},
{"name": "status", "desc": "Status"},
{"name": "entity", "fields": [
{"id": 101, "name": "value"},
{"id": 102, "name": "address"}]
}
]

我正在寻找列表形式的输出。获取输出的代码是:

output = []
for eachDict in results:
if "fields" in eachDict:
for field in eachDict["fields"]:
output.append(eachDict["name"]+"."+field["name"])
else:
output.append(eachDict["name"])

因此使用上述代码的输出是 -

['input', 'status', 'entity.value', 'entity.address']

是否有可能在列表理解中使用 if else 嵌套 for 循环获得类似的输出?

在列表理解的 if 条件下,我无法尝试访问该内部 for 循环

我的尝试-

output = [eachDict["name"]+"."+field["name"] for field in eachDict["fields"] if "fields" in eachDict else eachDict["name"] for eachDict in results]

最佳答案

将您的代码转换为可工作代码的一种方法是使内部循环生成列表,然后将结果展平。

sum(([d['name'] + '.' + f['name'] for f in d['fields']] 
if d.get('fields') else [d['name']] for d in results), [])

关于python - if else 使用 python 列表推导嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44953863/

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