打印一个包含所有可能均值的数组
print an array with all the possible mean
假设我有一个列表 'a'。现在,我想打印一个列表,其中包含所有可能的列表对 'a' 中所有可能的均值(仅整数)。例如:
a = [0,0,3,4,1,2,9]
现在,我想打印一个列表 b,这样;
b = [0,2,1,2,1,2,6,3,5]
如果 (a,b) 是一对,则 (b,a) 不算数。但如果 a 和 b 存在重复,它会算在内。
您可以使用 itertools.combinations()
:
import itertools
a = [0,0,3,4,1,2,9]
av = [int(sum(i)/2) for i in itertools.combinations(a, 2) if sum(i)%2 == 0]
输出:
[0, 2, 1, 2, 1, 2, 6, 3, 5]
您有几个任务要完成:
- 给定输入,输出组合
- 给定组合输出均值
- 给定方法,过滤掉非整数
使用函数式编程风格,您可以使用函数组合将每个步骤放在另一个步骤中。
from itertools import combinations
from statistics import mean
a = [0,0,3,4,1,2,9]
b = list(filter(lambda x: isinstance(x, int), map(mean, combinations(a, 2))))
假设我有一个列表 'a'。现在,我想打印一个列表,其中包含所有可能的列表对 'a' 中所有可能的均值(仅整数)。例如:
a = [0,0,3,4,1,2,9]
现在,我想打印一个列表 b,这样;
b = [0,2,1,2,1,2,6,3,5]
如果 (a,b) 是一对,则 (b,a) 不算数。但如果 a 和 b 存在重复,它会算在内。
您可以使用 itertools.combinations()
:
import itertools
a = [0,0,3,4,1,2,9]
av = [int(sum(i)/2) for i in itertools.combinations(a, 2) if sum(i)%2 == 0]
输出:
[0, 2, 1, 2, 1, 2, 6, 3, 5]
您有几个任务要完成:
- 给定输入,输出组合
- 给定组合输出均值
- 给定方法,过滤掉非整数
使用函数式编程风格,您可以使用函数组合将每个步骤放在另一个步骤中。
from itertools import combinations
from statistics import mean
a = [0,0,3,4,1,2,9]
b = list(filter(lambda x: isinstance(x, int), map(mean, combinations(a, 2))))