如何向列表中的某些项添加字符串?

2024-09-27 21:34:33 发布

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

我是Python(3)和Beautifulsoup(4)的新手,尝试学习webscraping

我正在搜集瑞典议会议员的名单。输出中几乎所有的名字旁边都有一个(S)(社会民主党成员)。前四个名字缺少

有没有什么方法可以把它添加到每个没有它的名字中,也许是使用它 条件语句?”如果列表项不包含“(S)”,请附加它 在列表项的末尾。”

另外,有没有可能像下面的名字那样格式化名字

代码:

source = urllib.request.urlopen("https://www.riksdagen.se/sv/ledamoter- 
partier/socialdemokraterna/").read()
soup = bs.BeautifulSoup(source, "lxml")

namn = soup.find_all("span", {"class": "fellow-name"})

for span in soup.find_all("span", {"class": "fellow-name"}):
    resultat = (span.text.strip())
    print(resultat)

输出为:

Stefan Löfven
Anders Ygeman
Annelie Karlsson
Lena Rådström Baastad
Ahlberg, Ann-Christin (S)
Andersson, Johan (S)
Axelsson, Marie (S)
...

Tags: namesource列表allfind名字classspan
1条回答
网友
1楼 · 发布于 2024-09-27 21:34:33

有一种方法:^{}

resultat = span.text.strip()
if not resultat.endswith(' (S)'):
    resultat += ' (S)'

(I)删除第一行中的括号;它们不是必需的。)

要将名字用逗号放在末尾,请将文本拆分为空格,然后用结尾的第一个项目将它们再次连接起来:

if not ',' in resultat:
    temp_list = resultat.split()
    resultat = ' '.join(temp_list[1:])+', '+temp_list[0]

结果:

Löfven, Stefan (S)
Ygeman, Anders (S)
Karlsson, Annelie (S)
Rådström Baastad, Lena (S)
Ahlberg, Ann-Christin (S)
Andersson, Johan (S)
Axelsson, Marie (S)

相关问题 更多 >

    热门问题