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
