如何简化Python for循环:从多行插入结构转为单行扁平结构?
当然有更优雅的实现方式!
你当前的代码是通过循环逐个追加元素到列表,我们可以用Python的列表推导式将其简化为一行,这也是Python里处理这类场景的惯用写法:
items = [item['pk'] for item in json.loads(json_result)]
说明:
- 这个写法和你原来的三行代码逻辑完全一致:先调用
json.loads(json_result)解析JSON字符串得到可迭代对象,然后遍历每个item,提取其中的pk字段,最终自动收集所有结果到列表items中。 - 相比原来的写法,列表推导式更紧凑,同时保持了良好的可读性,完全符合Python追求的“优雅”风格。
如果需要处理item中可能不存在pk字段的边界情况,还可以添加条件判断让代码更健壮:
items = [item['pk'] for item in json.loads(json_result) if 'pk' in item]
注:该问题已解决,感谢!
内容的提问来源于stack exchange,提问作者yuchen huang
相关产品推荐
相关产品推荐

