gpt4 book ai didi

python - 如何确定列表是否包含彼此相邻的 3 个偶数或 3 个奇数?

转载 作者:太空狗 更新时间:2023-10-30 01:47:35 24 4
gpt4 key购买 nike

您如何确定列表是否包含彼此相邻的 3 个偶数或 3 个奇数?

示例列表(真、假、真):

[2, 1, 3, 5]
[2, 1, 2, 5]
[2, 4, 2, 5]

最近的代码:

evenOdd = []

while True:
try:
n = int(input())
evenOdd.append(n)
except:
break

for x in evenOdd:
if x % 2 == 0:
print("True")

最佳答案

这是一些代码。这被认为比遍历索引更“Pythonic”——这使用 zip 函数遍历连续三元组。如果列表中的项目少于三个,这将给出一个错误——您可以添加该错误检查。 zip 函数在其中一个可迭代对象用完值时停止,这正是我们在这里想要的。

def three_evens_or_odds(alist):
for a, b, c in zip(alist, alist[1:], alist[2:]):
if (((a & 1) and (b & 1) and (c & 1)) or
((a & 1 == 0) and (b & 1 == 0) and (c & 1 == 0))):
return True
return False

print(three_evens_or_odds([2, 1, 3, 5]))
print(three_evens_or_odds([2, 1, 2, 5]))
print(three_evens_or_odds([2, 4, 2, 5]))

或者,甚至更短(从@jdehesa 那里借用了一个我应该自己想到的想法,所以像我一样支持他的回答),

def three_evens_or_odds(alist):
for a, b, c in zip(alist, alist[1:], alist[2:]):
if a & 1 == b & 1 == c & 1:
return True
return False

print(three_evens_or_odds([2, 1, 3, 5]))
print(three_evens_or_odds([2, 1, 2, 5]))
print(three_evens_or_odds([2, 4, 2, 5]))

打印出来的是

True
False
True

关于python - 如何确定列表是否包含彼此相邻的 3 个偶数或 3 个奇数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51725921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com