You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除从Twitter爬取的股票代码数组中的重复项?

解决Twitter爬取股票代码数组的去重问题

嘿,看你已经搞定了从Twitter爬取股票代码的部分,不过数组里重复的代码确实有点烦人对吧?别担心,有好几种简单的方法能解决这个问题,我给你整理一下:

方法1:利用Python集合快速去重

Python里的集合(Set)天生就不允许重复元素,所以直接把列表转成集合再转回列表就能快速去重。不过要注意:集合是无序的,如果不需要保留原数组的首次出现顺序,这个方法最省事。

修改后的代码如下:

import csv
import urllib.request
from bs4 import BeautifulSoup

twiturl = "https://twitter.com/ACInvestorBlog"
twitpage = urllib.request.urlopen(twiturl)
soup = BeautifulSoup(twitpage,"html.parser")
tweets = [i.text for i in soup.select('a.twitter-cashtag.pretty-link.js-nav b')]

# 一步完成去重
unique_tweets = list(set(tweets))
print(unique_tweets)

方法2:保留原顺序的去重(Python 3.7+适用)

如果你想保留股票代码在原数组中首次出现的顺序,Python 3.7及以上版本里的字典键是有序的,用dict.fromkeys()就能轻松实现:

代码示例:

import csv
import urllib.request
from bs4 import BeautifulSoup

twiturl = "https://twitter.com/ACInvestorBlog"
twitpage = urllib.request.urlopen(twiturl)
soup = BeautifulSoup(twitpage,"html.parser")
tweets = [i.text for i in soup.select('a.twitter-cashtag.pretty-link.js-nav b')]

# 去重同时保留首次出现顺序
unique_tweets = list(dict.fromkeys(tweets))
print(unique_tweets)

运行后你会得到和原数组顺序一致,但没有重复值的列表,非常适合需要保留推文提及顺序的场景。

方法3:手动遍历实现(兼容所有Python版本)

如果你的Python版本比较旧,或者想自己理解去重的逻辑,可以手动遍历原数组,只把没出现过的元素加入新列表:

代码示例:

import csv
import urllib.request
from bs4 import BeautifulSoup

twiturl = "https://twitter.com/ACInvestorBlog"
twitpage = urllib.request.urlopen(twiturl)
soup = BeautifulSoup(twitpage,"html.parser")
tweets = [i.text for i in soup.select('a.twitter-cashtag.pretty-link.js-nav b')]

# 手动遍历去重
unique_tweets = []
for code in tweets:
    if code not in unique_tweets:
        unique_tweets.append(code)
print(unique_tweets)

这个方法兼容性拉满,逻辑也很直观,适合新手理解去重的底层原理。

内容的提问来源于stack exchange,提问作者Taylor Rhodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:00:46