Oct-07-2017, 10:11 PM
hi,
i have a script which has so many list compression of for loop, can someone expand those list compression to for loop so that i can understand it much better
below is the script
i have a script which has so many list compression of for loop, can someone expand those list compression to for loop so that i can understand it much better
below is the script
from selenium import webdriver from bs4 import BeautifulSoup from collections import OrderedDict import more_itertools # open Firefox to get the data driver = webdriver.Firefox() driver.get('https://rotogrinders.com/grids/nfl-targets-1402017?site=draftkings') soup = BeautifulSoup(driver.page_source, 'lxml') driver.quit() # extract data from BeautifulSoup object player_data = soup.find_all('div', attrs={'class':'rgt-col'}) text = [y.text for x in player_data for y in x.descendants if y.name == 'div'] indices_to_delete = [i for i in range(0, len(text), 250)] keys = [text[k] for k in indices_to_delete] new_text = [x for x in text if not x in keys] text = list(more_itertools.sliced(new_text, 249)) new_text = list(zip(*text)) # build the dict players = OrderedDict() for x in new_text: y = list(zip(keys, x)) for key, val in y: if key == 'Player': players[val] = {} current_player = val else: players[current_player][key] = val