import itertools
a=(list(itertools.combinations([3,4,5,9,17,28,30,31
], 6)))
print(len(a))
print(a)
结果为
28
[(3, 4, 5, 9, 17, 28), (3, 4, 5, 9, 17, 30), (3, 4, 5, 9, 17, 31), (3, 4, 5, 9, 28, 30), (3, 4, 5, 9, 28, 31), (3, 4, 5, 9, 30, 31), (3, 4, 5, 17, 28, 30), (3, 4, 5, 17, 28, 31), (3, 4, 5, 17, 30, 31), (3, 4, 5, 28, 30, 31), (3, 4, 9, 17, 28, 30), (3, 4, 9, 17, 28, 31), (3, 4, 9, 17, 30, 31), (3, 4, 9, 28, 30, 31), (3, 4, 17, 28, 30, 31), (3, 5, 9, 17, 28, 30), (3, 5, 9, 17, 28, 31), (3, 5, 9, 17, 30, 31), (3, 5, 9, 28, 30, 31), (3, 5, 17, 28, 30, 31), (3, 9, 17, 28, 30, 31), (4, 5, 9, 17, 28, 30), (4, 5, 9, 17, 28, 31), (4, 5, 9, 17, 30, 31), (4, 5, 9, 28, 30, 31), (4, 5, 17, 28, 30, 31), (4, 9, 17, 28, 30, 31), (5, 9, 17, 28, 30, 31)]
上面的编程有28组,其中有10组同时包含3,4,5这三个数据,怎么样新建一个列表后取消这10组数据剩下18组数据。另外这组数据(3, 5, 9, 17, 30, 31) 中6个号码的和值为 3+5+9+17+30+31=95,再筛选 出 和值大于等于95的其他数据
import itertools
a=(list(itertools.combinations([3,4,5,9,17,28,30,31], 6)))
print(len(a))
print(a)
## 提出同时含有 3,4,5 的数据(项目两种方式都可以)
result_1 = []
for item in a:
if 3 not in item:
result_1.append(item)
else:
if 4 not in item:
result_1.append(item)
else:
if 5 not in item:
result_1.append(item)
result_2 = []
for item in a:
if not list(item[:3]) == [3,4,5]:
result_2.append(item)
print(result_1)
print(result_2)
print(len(result_1),len(result_2))
# 筛选和大于95的数据
data = [ i for i in result_1 if sum(i)>95 ]
print(data)
1.它是按顺序的,3,4,5都在最前面,你直接切片切掉前10个就行了
2.[x for x in a if sum(x)>95]
sum=0
for i in range(1,100):
if(i%2==0):
sum-=i
else:
sum+=i
print("1-2+3-4+5...+99的和为%d"%sum)