为什么这个if语句没有返回真值?

2024-09-29 02:18:04 发布

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

我正在制作一个程序,计算一个乐队从他们所有的布景列表的网页上播放一首歌的次数。我抓起网页,把所有播放的歌曲都转换成一个大列表,所以我只想看看歌曲名是否在列表中,然后添加到一个计数器中,但它不起作用,我似乎不知道为什么。你知道吗

我尝试过使用count函数,但没有成功


sugaree_counter = 0

link = 'https://www.cs.cmu.edu/~mleone/gdead/dead-sets/' + year + '/' + month+ '-' + day + '-' + year + '.txt'

    page = requests.get(link)
    page_text = page.text
    page_list = [page_text.split('\n')]
    print(page_list)

此代码返回列表:

[['Winterland Arena, San Francisco, CA (1/2/72)', '', "Truckin'", 'Sugaree',
  'Mr. Charlie', 'Beat it on Down the Line', 'Loser', 'Jack Straw',
  'Chinatown Shuffle', 'Your Love At Home', 'Tennessee Jed', 'El Paso',
  'You Win Again', 'Big Railroad Blues', 'Mexicali Blues',
  'Playing in the Band', 'Next Time You See Me', 'Brown Eyed Women',
  'Casey Jones', '', "Good Lovin'", 'China Cat Sunflower', 'I Know You Rider',
  "Good Lovin'", 'Ramble On Rose', 'Sugar Magnolia', 'Not Fade Away',
  "Goin' Down the Road Feeling Bad", 'Not Fade Away', '',
  'One More Saturday Night', '', '']]

但当我这么做的时候:


sugaree_counter = int(sugaree_counter)

if 'Sugaree' in page_list:
    sugaree_counter += 1

print(str(sugaree_counter))

它永远是零。你知道吗

它应该加1,因为“Sugaree”在这个列表中


Tags: thetextyou网页列表counterpagelink
2条回答

使用sum()和列表表达式:

sugaree_counter = sum([page.count('Sugaree') for page in page_list])

你的页面列表是一个列表列表,所以你需要两个for循环来获取页面,你需要这样做

for page in page_list:
    for item in page:
        sugaree_counter += 1

相关问题 更多 >