【发布时间】:2019-09-28 07:40:45
【问题描述】:
好的,我将从我所知道的开始。我知道您可以制作列表,然后创建这些列表的副本,以删除所有/不包括列表项双打。我正在寻找的是一个可以检查自身而不包含重复项的列表。
下面的代码是我想要做的,但链接列表还不存在。所以我得到一个名称错误。我再次知道我可以制作一个新列表并告诉它不要包含这些项目,但我正在寻找一种很好的单行方式来实现这一目标。也许它需要我迭代列表有点不同并且需要 2 行,但目标是创建一个没有重复的列表,而不依赖于重写列表或创建一个新列表。基本上只需要遍历列表一次(在创建期间)。
from bs4 import BeautifulSoup as bs4
import requests
import sys
import re
try:
page = requests.get(sys.argv[1])
except IndexError:
page = requests.get("https://medium.com")
body = bs4(page.content, "html.parser")
links = [a['href'] for a in body.find_all("a") if a['href'] not in links]
【问题讨论】:
-
您的对象列表是否需要按任何特定顺序排列?
-
您可以从当前列表项快速创建一个
set,然后在使用列表理解中的潜在新成员更新列表时进行检查。