Как удалить элементы из небольших списков, которые находятся в большом списке? - PullRequest
0 голосов
/ 19 марта 2020

Привет, у меня есть один большой список, который состоит из 10 меньших списков. В каждом меньшем списке 10 случайных чисел. В зависимости от переменной, четные или нечетные переменные должны быть видны. В приведенном ниже примере я сделал только два небольших списка, чтобы было легче увидеть вывод.

Это мой код.

def generate_random_number_list_10(len_of_elements):

    my_list=[random.randint(1,100) for x in range (len_of_elements)]
    return my_list

def generate_list_consist_of_10_smaller_list(amount_of_list,len_of_elements,variable):

    big_list=[generate_random_number_list_10(len_of_elements) for x in range (amount_of_list)]
    print (big_list)
    if variable%2 == 0:
        for num in big_list :
            for x in num:
                filtered_list = list(filter(lambda x: x%2==0, num)) 

    print (filtered_list)


generate_list_consist_of_10_smaller_list(2,8,8)

Это мой вывод:

[[1, 47, 25, 84, 48, 8, 91, 89], [99, 40, 54, 50, 52, 83, 86, 61]] - for example big list cosist of 2 smaller list
[40, 54, 50, 52, 86] - my solution is correct only for last smaller list 
[[ 84, 48, 8], [ 40, 54, 50, 52, 86]] -this is correct solution

Для большего числа списков меньшего размера мое решение фильтрует четные числа только для последнего меньшего списка. Как применить фильтрацию ко всем меньшим спискам, независимо от их количества?

1 Ответ

1 голос
/ 19 марта 2020

filtered_list должен быть списком списков.

Кроме того, вам не нужно for x l oop, поскольку filter() делает это зацикливание автоматически.

def generate_list_consist_of_10_smaller_list(amount_of_list,len_of_elements,variable):
    big_list=[generate_random_number_list_10(len_of_elements) for x in range (amount_of_list)]
    print (big_list)
    if variable%2 == 0:
        filtered_list = [list(filter(lambda x: x%2==0, num)) for num in big_list]
        print (filtered_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...