优化代码,其中包含多个for循环和Python中的if-else语句

我冲那个

lis2= map(str.strip, lis1)

lis2= []

for z in lis1:
    lis2.append(z.strip())

现在,我有以下代码:

    for item in sel:
        name = item.text  
        songs = []
        for song in item.find_next_siblings('div', class_="listalbum-item"):
            if song.find_previous_sibling('div', class_='album') == item:
                if 'www.somesite.com/lyrics' in song.find('a')['href']:
                    songs.append([song.text,  song.find('a')['href']])
                else:
                    songs.append([song.text, 'https://www.somesite.com/' + song.find('a')['href'][3:]])
        album[name] = songs

如何将上述概念应用于那段代码?老实说,第一个问题应该是必要的吗?真的有可能进行优化吗? ,但是仍然有一些建议吗?

提前致谢!

评论
埋葬那份爱
埋葬那份爱

这可以通过列表理解来完成,并且可以更快地通过列表理解来实现……但是,肯定不能通过列表理解来变得更加清晰:

[[song.text, 
  (song.find('a')['href'] 
   if 'www.somesite.com/lyrics' in song.find('a')['href'] 
   else 'https://www.somesite.com/' + song.find('a')['href'][3:])]
 for song in item.find_next_siblings('div', class_="listalbum-item")]
点赞
评论