如何将值作为一个集合来制作词典?

2024-09-30 01:21:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图制作一本字典,但我希望它的值部分是一个集合。我想在每次循环时将这些值放入一个集合,例如, {key:value}->;{key:value,value,value},{key:value,value}下面是我的代码

from bs4 import BeautifulSoup
import urllib
import re

def linkTexts(url):
    url = urllib.request.urlopen(url).read()
    soup = BeautifulSoup(url,'lxml')
    
    q2Dictionary = {}
    links = soup.find_all('a', href = True)
    for link in links:
        linkUrl = link["href"]
        if 'http' in linkUrl:
            linkText = link.get_text().strip()
            if linkUrl not in q2Dictionary.keys():
                q2Dictionary[linkUrl] = linkText
            if linkUrl in q2Dictionary.keys():
                q2Dictionary.update({linkUrl: linkText})

Tags: keyinimporturlifvaluelinklinks
2条回答

而不是制作字符串字典。为什么不编一本字符串列表词典呢

from bs4 import BeautifulSoup
import urllib
import re
def linkTexts(url):
    url = urllib.request.urlopen(url).read()
    soup = BeautifulSoup(url,'lxml')
    
    q2Dictionary = {}
    links = soup.find_all('a', href = True)
    for link in links:
        linkUrl = link["href"]
        if 'http' in linkUrl:
            linkText = link.get_text().strip()
            if linkUrl not in q2Dictionary.keys():
                q2Dictionary[linkUrl] = [linkText]
            else:
                q2Dictionary[linkUrl].append(linkText)

使用链接文本作为列表初始化每个键,并将具有相同键的链接文本附加到现有列表中

^{}与空集一起使用:

q2Dictionary.setdefault(linkUrl, set()).add(linkText)

这相当于:

if linkUrl not in q2Dictionary:
    q2Dictionary[linkUrl] = set()
q2Dictionary[linkUrl].add(linkText)

相关问题 更多 >

    热门问题