Member 14027666 Ответов: 1

Подсчет элементов во вложенных if в Python


Я хочу создать программу, которая может печатать количество фильмов, которые посмотрели более 3 человек(данные хранятся во вложенном списке, как показано ниже ).

list_movies = [('Человек паук 3', ['Джон', 'Джейк','Рональд']),('гравитация',['Джеймс','Джейк','Джон','Геральд']),
("Терминатор",["Энн","Джонни","Питер","Рональд","Невилл"])]

Что я уже пробовал:

list_movies = [('Spiderman 3', ['John', 'jake','Ronald']),('Gravity',['james','jake','john','gerald']),
               ('Terminator',['Anne','Johnny','Peter','Ronald','Neville'])]



count2 = 0
for (movie,name) in list_movies:
    count = 0
    for (name) in list_movies:
        if name != '':
            count += 1
    if count > 3:
        count2 += 1
    
print(count)
print(count2)

1 Ответов

Рейтинг:
8

CPallini

Ваш внутренний цикл должен повторяться по второму элементу кортежа:

list_movies = [('Spiderman 3', ['John', 'jake','Ronald']),('Gravity',['james','jake','john','gerald']),
               ('Terminator',['Anne','Johnny','Peter','Ronald','Neville'])]



count2 = 0
for (movie,viewers) in list_movies:
    count = 0
    for (name) in viewers:
        if name != '':
            count += 1
    if count > 3:
        count2 += 1

print("last movie viewers: %d" % count)
print("count of movies having had more than three viewers: %d" % count2)


Member 14027666

Это кортеж или вложенный список?

CPallini

Существует список (внешний список) кортежей. Каждый кортеж содержит, в свою очередь, строку (первый элемент) и список (внутренний список) строк (второй элемент).