请考虑以下代码:

def scrape_data(url, wanted_list):
    scraper = AutoScraper()
    scraper.build(url, wanted_list)
    result = scraper.get_result_similar(url, unique=False)
    return result

name_result = scrape_data(url, ["names"])

previous_name = []
with open("name.csv", "r", encoding="utf-8") as name_file:
    reader = csv.reader(name_file)
    for row in reader:
        try:
            i = 0
            while True:
                previous_name.append(row[i])
                i += 1
        except(IndexError):
            pass


#Insert here the code to operate the subtraction

with open("new_name.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    writer.writerow(result)

其中previous_name是列表,是name_result的副本,是列表|dict,minus a variable number of elements at the beginning,例如:

name_result = ["James", "Robert", "John", "Michael", "James", "Barbara", "Jessica"]
previous_name = [                   "John", "Michael", "James", "Barbara", "Jessica"]

我想要一个减法,它将这些第一个元素输出为变量result,即name_result的非重复"头",即在本例中:["James", "Robert"]

这不是基于元素的减法:previous_name中存在"James",但所需的输出不是["Robert"].

问题是,到目前为止,我所try 的只相当于元素减法(输出["Robert"]):

set1 = set(list1)
set2 = set(list2)
set1 - set2
[x for x in list1 if x not in list2]

推荐答案

你可以切成name_result

print(name_result[:len(name_result) - len(previous_name)]) # ['James', 'Robert']

Python相关问答推荐

在for循环中保存和删除收件箱

在Python中使用readline函数时如何向下行

回归回溯-2D数组中的单词搜索

如何将桌子刮成带有Se的筷子/要求/Beautiful Soup ?

强制venv在bin而不是收件箱文件夹中创建虚拟环境

如何比较numPy数组中的两个图像以获取它们不同的像素

抓取rotowire MLB球员新闻并使用Python形成表格

如何标记Spacy中不包含特定符号的单词?

发生异常:TclMessage命令名称无效.!listbox"

从groupby执行计算后创建新的子框架

当独立的网络调用不应该互相阻塞时,'

基于索引值的Pandas DataFrame条件填充

SQLAlchemy Like ALL ORM analog

pandas在第1列的id,第2列的标题,第3列的值,第3列的值?

无法连接到Keycloat服务器

可以bcrypts AES—256 GCM加密损坏ZIP文件吗?

如果初始groupby找不到满足掩码条件的第一行,我如何更改groupby列,以找到它?

OpenGL仅渲染第二个三角形,第一个三角形不可见

如何将数据帧中的timedelta转换为datetime

ModuleNotFoundError:没有模块名为x时try 运行我的代码''