Ste*_*e06 2 python optimization coding-style
以下Python代码行
values = ", ".join(["\"%s\"" % x for x in row])
Run Code Online (Sandbox Code Playgroud)
获取"row"中的元素列表以创建逗号分隔的字符串"values",而每个值都放在双引号中,例如:"New York","5","","3.2"
但是,由于结果是mysqldump文件的一部分,空字段("")应该变为NULL(不带双引号).
因此,我想学习如何更改该表达式,以便检查x是否为空(""),在这种情况下,NULL应该附加到值字符串.
谢谢
values = ", ".join('"%s"' % x if x else 'NULL' for x in row)
Run Code Online (Sandbox Code Playgroud)
例如:
>>> row = ["foo", "", "bar"]
>>> values = ", ".join('"%s"' % x if x else 'NULL' for x in row)
>>> values
'"foo", NULL, "bar"'
Run Code Online (Sandbox Code Playgroud)
感谢DSM指出将列表理解更改为生成器表达式当然更好- 这使得它更快,因为不再需要构建一个将在之后立即丢弃的列表.
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |