首页 > 解决方案 > 如何在python中一起做一个衬里“if”和“for-loop”

问题描述

所以我一直喜欢让我的代码更干净,而且我一直坚持做一些可能很容易做到的事情。

基本上我目前所做的是:

for raw_product in r.json().get('data'):
    if raw_product.get('countdown') is False:
        print(raw_product.get('url'))

我一直在想办法把它变成一个班轮。到目前为止,我只来过

test = ['{}'.format(raw_product.get('url')) for raw_product in r.json().get('data')]

但是在一个衬里内,缺少 if 语句,我想知道是否可以在['{}'.format(raw_product.get('url')) for raw_product in r.json().get('data')]?

标签: pythonlistfor-loop

解决方案


试试这个生成器:

 gen = (repr(x.get('url')) for x in r.json().get('data') if not x.get('countdown'))

或列出:

li = [repr(x.get('url')) for x in r.json().get('data') if not x.get('countdown')]

使thise代码不干净的原因不是理解,而是这种'get'方法。将其与:

li = [x.url for x in r.json_data if not x.countdown]. 是比较清楚的。


推荐阅读