python - 如何在python中修改和扩展列表
问题描述
我正在搜索搜索词。我想找到建议的术语,并为每个建议的术语获取一个新的附加建议术语列表(我想将其附加到原始列表中)。以下是我到目前为止的代码
url = ' starting url '
driver.get(url)
def search(url):
new_urls = []
searches = []
new_searches = []
try:
#Get suggested terms
suggestions = driver.find_element_by_xpath('//*[@id="search-associates"]').find_elements_by_tag_name('a')
for i in suggestions:
#add each term to the list searches
searches+=[i.text]
#Get urls of suggested terms to visit
new_urls += [i.get_attribute('href')]
except:
pass
#Filter for duplicate suggested terms and blanks
new_searches += [x for x in new_searches if x != None and x not in searches ]
print(new_searches)
print(searches)
#Visit the first url in the list (just for testing purposes)
driver.get(new_urls[0])
#call function to get info from new_url
search(new_urls[0])
#Initial function call
search(url)
我有以下问题:
每次再次调用该函数时,搜索列表都会刷新。新的建议术语未附加到原始列表中。
我的过滤重复和空白的代码不起作用
有谁知道如何解决这些问题?如果是这样,我非常感谢您的帮助。
感谢任何花时间阅读我的问题并帮助我的人。
谢谢你。
编辑 如果有人想要我正在寻找的示例输出,比如说我访问了一个 url,那么第一组建议的术语是:
searches = ['apples', 'bananas', 'cherries', 'grapes', 'oranges']
假设我访问 urlapple
并获得以下建议的术语:
searches = [ 'bananas', 'cherries', 'tangerines', 'grapefruit']
我希望将搜索列表更新为:
searches = ['apples', 'bananas', 'cherries', 'grapes', 'oranges','bananas', 'cherries', 'tangerines', 'grapefruit']
我希望将 new_searches 更新为
new_searches = ['apples', 'bananas', 'cherries', 'grapes', 'oranges','tangerines', 'grapefruit']
如您所见,重复项已被删除。
我遇到的问题new_searches
是根本没有过滤searches
列表,它正在输出[]
. 我遇到的另一个问题searches
是没有将新术语附加到上一个列表中。它会创建一个新列表。
解决方案
你的i.text
不起作用,所以它总是直接通过。您可以将项目添加到列表中:
searches.append(i)
或没有.text。如果您只想附加字符串,您可以使用str(i)
.
推荐阅读
- authentication - 在前端实现用户登录
- c++ - 如何使用半空间测试确定一个点是在线段的前面还是后面?
- c# - 关闭按钮启动 main_load 事件
- php - mysqli使用foreach从多个复选框插入数据库
- javascript - 在传递回调时绑定变量
- javascript - Google Cloud Functions - 访问密钥的值
- firebase - 我们不能在事务中查询集合吗?
- windows - 如何在不发布的情况下部署 Docker 应用程序?
- windows-community-toolkit - 如何使用 UWP 工具包的增量加载集合助手添加新数据
- javascript - 如何使用外部 lat、lng 设置中心?