【发布时间】:2021-02-20 16:54:10
【问题描述】:
我有一个网络爬虫,可以从 TradingView.com 下载满足特定条件的所有股票,然后将这些股票的名称存储在一个列表中。 然后,我有一个脚本可以将股票名称及其添加日期保存到 CSV 文件中。
我的问题是为什么我需要多次遍历列表来删除不相关的数据?我尝试使用两个列表来避免编辑您当前正在循环的列表。
代码如下:
# Removes irrelevant, old stocks
for i in range(5):
to_be_added = old_stocks
for stock in old_stocks:
if stock[0] not in new_stocks:
print(f"Removed irrelevant stock : {stock}")
del to_be_added[old_stocks.index(stock)]
如果我删除顶部的for i in range,它只会删除两个不相关的股票。
to_be_added 和 old_stocks 都是同一个列表,我使用它们来避免编辑我当前循环的列表,如上所述。 new_stocks 是来自网络爬虫的股票名称列表。 old_stocks 是一个包含嵌套列表的列表(导入的 CSV 文件),其中包含添加到文件中的股票名称和日期。
# An example of new_stocks
['NASDAQ:CMBG', 'NASDAQ:GLG', 'NASDAQ:KTCC']
# An example of old_stocks
[['NASDAQ:CBMG', 'November 07, 2020'], ['NASDAQ:GLG', 'November 08, 2020'], ['NASDAQ:KTCC', 'November 08, 2020'], ['NASDAQ:ATHE', 'November 08, 2020']]
【问题讨论】: