Python如何打印列表内的链接而不显示外层列表方括号
解决Python打印列表去除外层方括号的方案
方法1:直接切片处理(最适配你的需求)
你要的输出是保留列表内部的单引号、逗号分隔格式,仅去掉外层方括号,直接把列表转成字符串后切除首尾字符即可。
把你代码里的print(produtos)替换为:
print(str(produtos)[1:-1])
原理:
str(produtos)会输出"['链接1', '链接2', ...]"格式的字符串,[1:-1]切片会跳过第一个字符[和最后一个字符],完全符合你要求的输出样式。
方法2:灵活自定义格式(适合后续调整需求)
如果后续你需要调整分隔符、要不要保留引号等格式,用join方法手动拼接即可:
# 保留单引号、逗号分隔的写法 print(', '.join(f"'{link}'" for link in produtos)) # 如果不需要单引号,直接改成 print(', '.join(produtos)) 即可
额外优化提示
你当前把produtos定义为全局列表,每次5秒的定时任务执行时都会往里面追加新抓取的链接,会导致列表内容重复累加、越来越冗余。如果你每次只需要输出当次抓取的链接,建议把列表初始化放到函数内部:
@tasks.loop(seconds=5) async def aviso(): produtos = [] # 移到函数内部,每次执行重新初始化 request = requests.get("https://www.nike.com.br/snkrs#estoque") soup = bs4(request.text, "html.parser") links = soup.find_all("a", text="Comprar", class_="btn") for link in links: produtos.append(link["href"]) print(str(produtos)[1:-1]) # 如果要发送到Discord频道,直接用处理后的字符串即可: # await 你的频道对象.send(str(produtos)[1:-1])
内容的提问来源于stack exchange,提问作者user15594988
相关产品推荐
相关产品推荐

