python - 从列表中删除重复项

标签 python list set

我尝试关注 this post但是,它似乎对我不起作用。

我试过这段代码:

for bresult in response.css(LIST_SELECTOR):
    NAME_SELECTOR = 'h2 a ::attr(href)'
    yield {
        'name': bresult.css(NAME_SELECTOR).extract_first(),
    }
                                                                                  b_result_list.append(bresult.css(NAME_SELECTOR).extract_first())

    #set b_result_list to SET to remove dups, then change back to LIST
    set(b_result_list)
    list(set(b_result_list))
for brl in b_result_list:
    print("brl: {}".format(brl))

这会打印出:

brl: https://facebook.site.com/users/login
brl: https://facebook.site.com/users
brl: https://facebook.site.com/users/login

当我只需要:

brl: https://facebook.site.com/users/login
brl: https://facebook.site.com/users

我在这里做错了什么?

谢谢!

最佳答案

当您需要保存结果时,您正在丢弃结果……b_result_list 实际上从未改变……所以您只是在原始列表上迭代。而是保存 set 操作的结果

b_result_list = list(set(b_result_list))

(注意 set 不保留顺序)

关于python - 从列表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41602896/

相关文章:

python - 如何比较 Pandas 中两个 DataFrame 的值?

python - 如何测试涉及类数据的 python 类中的顺序操作

java - 如何在使用自定义方式保存数据 RecyclerView 时制作列表更改动画

python - 访问嵌套列表元素,深度在运行时已知

python - 如何将以下 Python 字符串拆分为字符串列表?

java - 如何在 hibernate 中正确设置双向关联@OneToMany

Python 设置 1 和 True 的插值

python - Redis lua 脚本 - 用 Ruby 编写的 lua 脚本的 python 等价物是什么?

Java迭代器值(value)维持

python - 从列表创建逗号分隔的字符串