算一下美国拍的电影。 IndexError:列表索引超出范围

时间:2018-08-24 06:04:10

标签: python function

[['movie_title', 'director_name', 'color', 'duration', 'actor_1_name', 'language', 'country', 'title_year'], ['Avatar', 'James Cameron', 'Color', '178', 'CCH Pounder', 'English', 'USA', '2009'], ["Pirates of the Caribbean: At World's End", 'Gore Verbinski', 'Color', '169', 'Johnny Depp', 'English', 'USA', '2007'], ['Spectre', 'Sam Mendes', 'Color', '148', 'Christoph Waltz', 'English', 'UK', '2015'], ['The Dark Knight Rises', 'Christopher Nolan', 'Color', '164', 'Tom Hardy', 'English', 'USA', '2012']]

def feature_counter(input_lst, index, input_str, header_row = False):
    if header_row == True:
        if input_lst[index] == input_str:
            input_lst = input_lst[1:len(input_lst)]
        for each in input_lst:
            num_elt = num_elt + 1
    return num_elt

num_of_us_movies = feature_counter(movie_metadata, 6, 'USA', True)
print(num_of_us_movies)

我正试图写一个代码来计算美国制作的电影。 当我输入此代码时,我得到了IndexError:列表索引超出范围..! 你能帮我吗?

2 个答案:

答案 0 :(得分:0)

您似乎有一个列表列表,如movie_metadata。

尝试print len(input_lst)。可能低于6

答案 1 :(得分:0)

l = [['movie_title', 'director_name', 'color', 'duration', 'actor_1_name', 'language', 'country', 'title_year'],
 ['Avatar', 'James Cameron', 'Color', '178', 'CCH Pounder', 'English', 'USA', '2009'],
 ["Pirates of the Caribbean: At World's End", 'Gore Verbinski', 'Color', '169', 'Johnny Depp', 'English', 'USA', '2007'],
 ['Spectre', 'Sam Mendes', 'Color', '148', 'Christoph Waltz', 'English', 'UK', '2015'],
 ['The Dark Knight Rises', 'Christopher Nolan', 'Color', '164', 'Tom Hardy', 'English', 'USA', '2012']]

count = len([x for x in l if x[6].lower() == 'usa'])
print(count)