如何以其他方式编写下面的代码?

时间:2019-04-04 00:17:58

标签: python loops for-loop

如何重写以下内容?

positive_crawls = [{'url': page['url'], 'hour': hour-1, 'updated': True} 
                   for page in crawl_json 
                   for hour in page['positive checks']]

2 个答案:

答案 0 :(得分:1)

如果您是说如何使用循环来重写该理解,则是这样的:

positive_crawls = []

for page in crawl_json:
    for hour in page['positive checks']:
        positive_crawls.append({'url': page['url'], 'hour': hour-1, 'updated': True})

但是,请记住,您的理解很可能比使用这两个for循环要快。

答案 1 :(得分:0)

正如其他人所说,在没有重写目标的情况下,仍有很大的解释空间。

这里是一个

from dataclasses import dataclass

@dataclass
class Crawl:
    url: str
    hour: int
    updated: bool = True

def get_crawls(crawl_json):
    for page in crawl_json:
        for hour in page['positive checks']:
            yield Crawl(page['url'], hour - 1).asdict()

positive_crawls = list(get_crawls(crawl_json))