gpt4 book ai didi

python - 匹配 python 数据集中的多个项目

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:48 25 4
gpt4 key购买 nike

这段代码对我来说运行良好:

a = '31'
b = ''
c = ''
d = ''

codes = [a, b, c, d]

set_one = ('07', '10', '17', '31')
set_two = ('01','02','03','04','05','06','08')
if any(s in test for test in codes for s in set_one):
result = '"ONE"'
elif any(s in test for test in codes for s in set_two):
result = '"TWO"'
else:
result = 'NULL'

print(result)

在此示例中,result 将打印回 "ONE"

如果 a、b、c 或 d 设置为 01,则结果将打印回 "TWO",等等。

这个解决方案工作了一段时间,因为只有一组代码可以在等式中表示,但我现在需要考虑同时表示一个和两个,(例如 A = 07,B = 01) .如果发生这种情况,“07”将被第一个 if any 语句选中,并报告出 “ONE”

我需要构建功能,这样如果在整个 codes 对象中,两个组都被表示,(例如 codes = ['07','01','', '']),然后它返回 "THREE"

我不确定该怎么做,因为 python 不是我的强项...

编辑

这行得通。谢谢大家!

a = '01'
b = ''
c = ''
d = ''

codes = [a, b, c, d]

one_match = 0
two_match = 0

set_one = ('07', '10', '17', '31', 'CO', '12', '13', '25', '55', 'ZN', 'Z3', 'Z2')
set_two = ('01','02','03','04','05','06','08','11','14','15','16','18','19','20')
if any(s in test for test in codes for s in set_one):
one_match = 1
if any(s in test for test in codes for s in set_two):
two_match = 1

if one_match == 1 and two_match == 1:
result = "MIX"
elif one_match == 1:
result = "ONE ONLY"
elif two_match == 1:
result = "TWO ONLY"
else:
result = 'NULL'


print(result)

最佳答案

不使用elif进行测试,使用整数进行计数。

matches = 0
if any(s in test for test in codes for s in set_one):
matches += 1
if any(s in test for test in codes for s in set_two):
matches += 2

然后使用一个列表 & matches 作为索引:

result = ["NULL","ONE","TWO","THREE"][matches]

关于python - 匹配 python 数据集中的多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590014/

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