Как написать код ниже любым другим способом? - PullRequest
0 голосов
/ 04 апреля 2019

Как мне переписать следующее понимание?

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

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Если вы имеете в виду, как переписать это понимание, используя вместо этого циклы, это путь:

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.

0 голосов
/ 04 апреля 2019

Как уже говорили другие, без цели для переписывания есть много места для интерпретации.

Вот один

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...