[英]How to extract consecutive even numbers from a list?
In a list, a minimum of 2 even numbers makes a sequence: for example, a list that is [3, 18, 6, 5, 3, 4, 32, 8, 12]
has 2 sequences that are even - which are 18, 6
and 4, 32, 8, 12
.在一个列表中,至少有 2 个偶数组成一个序列:例如,一个
[3, 18, 6, 5, 3, 4, 32, 8, 12]
的列表有 2 个偶数序列 - 它们是18, 6
和4, 32, 8, 12
。
How do I extract the sequences without extracting every even number individually?如何在不单独提取每个偶数的情况下提取序列?
def saisie():
test = False
while not test:
N = int(input("donner N: "))
test = 3<=N<=20
return N
def remplir(N):
t=[int]*N
for i in range(N):
element = input("enter an element:")
t.append(element)
return t
def seq(N, t):
s=""
for i in t:
if t[i] and t[i+=]%2==0:
s=
To group items with shared criteria, you can use groupby
:要使用共享标准对项目进行分组,您可以使用
groupby
:
from itertools import groupby
nums = [3, 18, 6, 5, 3, 4, 32, 8, 12]
for is_even, grouper in groupby(nums, key=lambda x: x % 2 == 0):
if is_even:
evens = list(grouper) # grouper objects have no len. Must convert to list
if len(evens) >= 2: # only consider sequences of at least 2 even numbers
print(*evens)
Will give:会给:
18 6
4 32 8 12
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.