如何替换这个嵌套循环?
How to replace this nested loop?
这里的目标是从网站获取文本并将其附加到列表中,这样我就可以从中创建一个数据框。经过大量 Google 我设法做到了这一点,但现在我明白这不是最有效的方法,一直在研究列表理解但未能获得成功的结果。
containers = soup.find_all('td', class_=['TableRecords_EvenLine', 'TableRecords_OddLine'])
dateli = []
descli = []
amtli = []
for container in containers:
date = container.select('div[id*=wtDataMov]')
for element1 in date:
seci1 = element1.get_text()
dateli.append(seci1)
description = container.select('div[id*=wtDescricao]')
for element2 in description:
seci2 = element2.get_text()
descli.append(seci2)
amount = container.select('div[id*=wtValorEur]')
for element3 in amount:
seci3 = element3.get_text()
amtli.append(float(price_str(seci3)))
想法?谢谢你的时间。
如果你想使用列表理解来完成它,它看起来像这样
containers = soup.find_all('td', class_=['TableRecords_EvenLine', 'TableRecords_OddLine'])
dateli = []
descli = []
amtli = []
for container in containers:
dateli += [e.get_text() for e in container.select('div[id*=wtDataMov]')]
descli += [e.get_text() for e in container.select('div[id*=wtDescricao]')]
amtli += [float(price_str(e.get_text())) for e in container.select('div[id*=wtValorEur]')]
这里的目标是从网站获取文本并将其附加到列表中,这样我就可以从中创建一个数据框。经过大量 Google 我设法做到了这一点,但现在我明白这不是最有效的方法,一直在研究列表理解但未能获得成功的结果。
containers = soup.find_all('td', class_=['TableRecords_EvenLine', 'TableRecords_OddLine'])
dateli = []
descli = []
amtli = []
for container in containers:
date = container.select('div[id*=wtDataMov]')
for element1 in date:
seci1 = element1.get_text()
dateli.append(seci1)
description = container.select('div[id*=wtDescricao]')
for element2 in description:
seci2 = element2.get_text()
descli.append(seci2)
amount = container.select('div[id*=wtValorEur]')
for element3 in amount:
seci3 = element3.get_text()
amtli.append(float(price_str(seci3)))
想法?谢谢你的时间。
如果你想使用列表理解来完成它,它看起来像这样
containers = soup.find_all('td', class_=['TableRecords_EvenLine', 'TableRecords_OddLine'])
dateli = []
descli = []
amtli = []
for container in containers:
dateli += [e.get_text() for e in container.select('div[id*=wtDataMov]')]
descli += [e.get_text() for e in container.select('div[id*=wtDescricao]')]
amtli += [float(price_str(e.get_text())) for e in container.select('div[id*=wtValorEur]')]