嗨,我有一个大名单,其中包括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
对于大量较小的列表,我的解决方案仅对最后一个较小列表过滤偶数。 不管有多少个列表,如何对所有较小的列表应用过滤?
答案 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)