下面的代码,通过获取请求获得答案并将结果写入列表"结果"
for i in url:
df = pd.read_html(i,header=0)[0]
df = df.as_matrix().tolist()
for item in df:
RESULT.append(item)
我使用下面的代码排除重复的条目:
def unique_items(RESULT):
found = set()
for item in RESULT:
if item[0] not in found:
yield item
found.add(item[0])
NOT_DUBLICATE = (list(unique_items(RESULT)))
print(NOT_DUBLICATE)
在我看来,这不是最佳的,因为有必要获取所有行的列表以排除重复项。
如何在将行加载到列表RESULT之前找到重复项?
例如,我写入列表RESULT:
的行[[55323602, 'system]
,[55323603, 'system]]
[[55323602, 'system]
,[55323603, 'system]]
答案 0 :(得分:1)
如果列表item
中不存在item
,请将RESULT
附加到列表中,而不是使用其他方法排除重复的条目。那你就不需要方法unique_items()
。
您可以在使用以下内容将行加载到RESULT列表之前找到重复项:
for i in url:
df = pd.read_html(i,header=0)[0]
df = df.as_matrix().tolist()
for item in df:
if item not in RESULT
RESULT.append(item)
答案 1 :(得分:1)
只需使用集合而不是列表。
result = set()
for i in url:
df = pd.read_html(i,header=0)[0]
df_list = df.as_matrix().tolist()
for item in df_list:
result.add(tuple(item))
以上代码将排除任何重复项。与您的案例的唯一区别在于result
的元素将是元组而不是列表。
最后,您可以通过以下方式将该集重新设置为列表:
result = list(result)