gpt4 book ai didi

Python所有iterables匹配条件

转载 作者:太空宇宙 更新时间:2023-11-03 15:39:49 25 4
gpt4 key购买 nike

我有以下代码:

from re import match, compile

list1 = ['AB12345', 'AB12345', 'AB12345', 'AB12345', 'AB12345', 'AB12345', 'AB12345', 'AB12345', 'AB12345']
list2 = ['AB12345', 'WLADEK', 'AB12345', 'AB12345', 'STEFAN', 'AB12345', 'AB12345', 'AB12345', 'ZENEK']
def iterChecker(list):
regex = compile("([A-Z]{2})(\d+)")
checker = []
for l in list:
if regex.match(l):
checker.append(l)
if len(checker) == len(list):
print("Everything is ok")
else:
print("Elements that do not match: %s" % l)

iterChecker(list1)
print("###################")
iterChecker(list2)

输出:

Everything is ok
###################
Elements that do not match: WLADEK
Elements that do not match: STEFAN
Elements that do not match: ZENEK

我的问题是,如何检查所有迭代是否符合条件。在此示例中,列表元素应与 regex 匹配。我认为,我对这个问题的解决方案是“笨拙”的,而不是“优雅的”。我正在阅读有关 all() 的内容,但实现失败。

有什么改进此代码的建议吗?

最佳答案

要检查所有迭代是否匹配,只需有一个标志,假设它们匹配,但如果有任何不匹配,则为 false。例如(我没有运行过这段代码)。

def iterChecker(list):
regex = compile("([A-Z]{2})(\d+)")
checker = []
all_match = True
for l in list:
if regex.match(l):
checker.append(l)
if len(checker) == len(list):
print("Everything is ok")
else:
all_match = False
print("Elements that do not match: %s" % l)
if all_match:
print("All match")

关于Python所有iterables匹配条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42243978/

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