我有一个硬件问题,因为我能够打印,所以我找不到错误。有人可以协助我吗?

时间:2019-07-15 14:39:47

标签: python

data = [
    ['Video A','500'],
    ['Video B','300'],
    ['Video C','1000']
]

result = 0

for index in data:
    title = index[0]
    views = index[1]

    if title == 'Video' :
         result += views

print(result)

当我运行print时,我总是得到0。答案应该是1800。问题是没有错误,而且我找不到我犯错的部分。

3 个答案:

答案 0 :(得分:4)

好像您想检查标题 "Video"开头。

此外,您的视图是字符串,需要转换为整数。

尝试一下:

data = [
    ['Video A', '500'],
    ['Video B', '300'],
    ['Video C', '1000']
]

result = 0

for index in data:
    title = index[0]
    views = index[1]

    if title.startswith('Video'):
        result += int(views)

print(result)

答案 1 :(得分:0)

正确的代码:

data = [
    ['Video A','500'],
    ['Video B','300'],
    ['Video C','1000']
]

result = 0

for index in data:
    title = index[0]
    views = index[1]

    #you can use
    #if title[:len("Video")] == 'Video':
    #or
    #if title.startswith('Video'):
         result += int(views)

print(result)

答案 2 :(得分:0)

您也可以使用split

data =
    ['Video A','500'],
    ['Video B','300'],
    ['Video C','1000']
]

result = 0

for index in data:
    title = index[0]
    views = index[1]

    if title.split(' ',1)[0] == 'Video' :
         result += int(views)

print(result)

它可以确保'Video'后面有一个空格,并可以访问名称的其余部分:

v = "Video A and B"
l = v.split(" ",1)
l[0] # 'Video'
l[1] # 'A and B'