将字符串与list的元素连接起来只返回最后一个元素

2024-06-28 11:15:54 发布

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

我使用BeutifulSoup从一个html文件中提取某些数据,当我应用下面的代码得到一个最终结果时,也就是一个标记的子列表的所有元素的串联,我只得到了歌词变量中的最后一个元素

        lyrics = ""
        for content in songResult.children:
            if "br" in str(content):
                continue                  
            lyrics += str(content)
        print(lyrics)

子项是br标记或songResult标记内的文本。我忽略了br标签,尝试使用print(content)而不是lyrics += str(content),然后打印就完美了。我似乎找不出问题的根源。有什么建议吗


Tags: 文件数据代码in标记br元素列表
2条回答

确保此代码不在另一个循环中,这样“歌词”就不会被重置为“”。这将导致您描述的症状(在if语句中打印出来很好,但“歌词”只包含最后一个变量)

对我来说效果不错。我做到了:

lyrics = ""

children = ['testbr', 'test', 'testbr2', 'test', 'testbr3']

for content in children:
    if "br" in str(content):
        continue
    lyrics += str(content)
    print('in loop'),
    print(lyrics)

print('out of loop'),
print(lyrics)

上面的代码片段是否如预期的那样对您有效

相关问题 更多 >