如何在python

时间:2019-07-31 18:51:50

标签: python list 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')]内应用if语句吗?

2 个答案:

答案 0 :(得分:0)

尝试使用此生成器:

 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')]

使此代码不干净的原因不是理解力,而是 “获取”方法。比较一下:

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

答案 1 :(得分:-1)

我不确定它是否更干净,但是您可以使用带有if过滤器的生成器表达式来在一行中获得这种模式:

[ print(rp.get('url')) for rp in r.json().get('data') if rp.get('countdown') is False ]

请注意,这样做会浪费效率,无法创建和记住None值的整个列表(每次print调用的结果)。