python - 使用列表推导创建使用 dict 值放在一起的字符串列表
问题描述
我有一个看起来像这样的字典列表:
{
"address": "TestA",
"zipcode": "95723",
"postofficename": "TestB"
}
我想做一个列表理解,它创建一个以输入参数开头的字符串列表address
:
[
"TestA, 95723 TestB"
]
我似乎无法让它工作,也不确定从这里去哪里,我尝试了什么:
startswith_list = \
[r = '{}, {} {}'.format(r['address'], r['zipcode'], r['postofficename']) if r['address'].startswith(address) for r in result]
解决方案
这里有两个错误:
[r = '{}, {} {}'.format(r['address'], r['zipcode'], r['postofficename']) if r['address'].startswith(address) for r in result]
首先,这r = ...
是一个语法错误,因为理解中的第一件事必须是一个表达式,如下所示:
['{}, {} {}'.format(r['address'], r['zipcode'], r['postofficename']) if r['address'].startswith(address) for r in result]
接下来,if
在错误的地方:它应该在循环之后:
['{}, {} {}'.format(r['address'], r['zipcode'], r['postofficename']) for r in result if r['address'].startswith(address)]
推荐阅读
- python - tensorflow:分析图像给出了无法为张量“占位符:0”提供形状(1296000,)的值,其形状为“(?,1296000)”
- mysql - Mysql - 选择有所有日期的房间
- sentry - Sentry - 将 JSON 字段包含在引号中的设置
- mysql - SphinxQL 连接问题(守护进程正在监听时)
- avro - 如何在 Avro 模式中指定范围?
- javascript - 在 Angular 6 中动态调用索引组件
- node.js - Let's Encrypt 的证书无法与 node.js 一起使用
- angular - 在表之间添加动态行
- azure - Azure 中的安全存储服务是什么?
- azure - 在 Azure Function 中接收服务总线消息