如何从较大列表中的较小列表中删除项目?

时间:2020-03-18 22:43:05

标签: python list

嗨,我有一个大名单,其中包括10个小名单。每个较小的列表中有10个随机数。 根据变量的不同,偶数或什至偶数变量都必须可见。下面的示例仅列出了2个较小的列表,以便于查看输出。

这是我的代码。

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 个答案:

答案 0 :(得分:1)

filtered_list必须是列表列表。

此外,您不需要for x循环,因为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)