为什么if语句返回True?

时间:2019-04-28 00:43:52

标签: python python-3.x

我正在制作一个程序,计算一个乐队从其所有列表的网页上播放歌曲的次数。我已经抓取了网页并将所有播放的歌曲转换为一个大列表,所以我要做的就是查看歌曲名称是否在列表中并添加到计数器中,但是它不起作用并且我似乎无法弄清楚找出原因。

我尝试使用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”在该列表中

2 个答案:

答案 0 :(得分:2)

您的page_list是一个列表列表,因此您需要两个for循环来获取页面,您需要做

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

答案 1 :(得分:0)

使用sum()并列出表达式:

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