【问题标题】:Why isn't this if statement returning True?为什么这个 if 语句不返回 True?
【发布时间】:2019-04-28 00:43:51
【问题描述】:

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

我尝试使用 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' 在那个列表中

【问题讨论】:

标签: python python-3.x


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-15
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      • 2014-02-15
      • 2016-02-12
      • 1970-01-01
      相关资源
      最近更新 更多