sách gpt4 ăn đã đi

Python-验证生成的幂集

In lại Tác giả: Walker 123 更新时间:2023-11-30 22:15:50 26 4
mua khóa gpt4 giày nike

我想仅根据“< >”中的数据验证生成的组合。

我有一个 Excel 工作表,其中包含根据“<>”条件生成的所有可能的组合: 以下是其示例:

    [-C(A2)-C(60)--xy1-[dress0]-C(D0)-lbr-]
[-C(A2)-C(60)-NULL-xy1-[dress0]-C(D0)-lbr-]
[NULL-C(A2)-C(60)--xy1-[dress0]-C(D0)-lbr-]
[NULL-C(A2)-C(60)-NULL-xy1-[dress0]-C(D0)-lbr-]

我想检查生成的组合是否有效。 例如:对于上面的列表,生成组合之前的原始字符串如下:

    -C(A2)-C(60)---xy1-[address0]-C(D0)-lbr-

请帮助我找到一种通用方法来验证基于<>生成的所有幂集。

举个简单的例子: 我有以下列表1。

[-CAT-DOG]
[NULL--CAT-DOG]
[
-NULL-CAT-DOG]
[NULL-NULL-CAT-DOG]

列表1是以下所有可能的组合:

-CAT-DOG

我想检查上面的list1是否有效

câu trả lời hay nhất

我们可以使用 itertools.product 构建所需的组合,生成 Cartesian product它的可迭代参数。但首先我们需要将输入字符串拆分为其组件。我们可以通过首先添加一些额外的空格,然后调用 .split 来做到这一点。方法。

然后我们可以转换 .split 返回的列表中的每个字符串。成一个元组。 < 包含的项目和>转换为包含该项目和 'NULL' 的 2 元组字符串,所有其他项都变成 1 元组。

from itertools import product

def make_powerset(base):
# Add some spaces to make splitting easier
s = base.replace('-', ' ').replace('<', ' <').replace('>', '> ')

# Convert items enclosed in <> into 2-tuples and make other items 1-tuples
elements = [(u, 'NULL') if u.startswith('<') else (u,) for u in s.split()]

# Create all the subsets by finding the Cartesian product of all the tuples
return {'-'.join(t).replace('>-<', '><') for t in product(*elements)}

# Tests

# Make a powerset from base
base = '-C(A2)-C(60)---xy1-[address0]-C(D0)-lbr-'
powerset = make_powerset(base)
for t in powerset:
print(t)
print()

# Test if the following data are in the powerset
data = (
'-C(A2)-C(60)--xy1-[address0]-C(D0)-lbr-',
'-C(A2)-C(60)-NULL-xy1-[address0]-C(D0)-lbr-',
'NULL-C(A2)-C(60)--xy1-[address0]-C(D0)-lbr-',
'NULL-C(A2)-C(60)-NULL-xy1-[address0]-C(D0)-lbr-',
'-C(A2)-C(60)-NULL-xy1-[address0]-C(D0)-lbr-',
)

for s in data:
print(s, s.rstrip('-') in powerset)

print('\n', '- ' * 20, '\n')

# Make another powerset
for t in make_powerset('-CAT-DOG'):
print(t)

đầu ra

-C(A2)-C(60)--xy1-[address0]-C(D0)-lbr
NULL-C(A2)-C(60)-NULL-xy1-[address0]-C(D0)-lbr
-C(A2)-C(60)-NULL-xy1-[address0]-C(D0)-lbr
NULL-C(A2)-C(60)--xy1-[address0]-C(D0)-lbr

-C(A2)-C(60)--xy1-[address0]-C(D0)-lbr- True
-C(A2)-C(60)-NULL-xy1-[address0]-C(D0)-lbr- True
NULL-C(A2)-C(60)--xy1-[address0]-C(D0)-lbr- True
NULL-C(A2)-C(60)-NULL-xy1-[address0]-C(D0)-lbr- True
-C(A2)-C(60)-NULL-xy1-[address0]-C(D0)-lbr- False

- - - - - - - - - - - - - - - - - - - -

NULL-NULL-CAT-DOG-NULL
NULL--CAT-DOG-NULL
-NULL-CAT-DOG-
-NULL-CAT-DOG-NULL
NULL-NULL-CAT-DOG-
-CAT-DOG-
NULL--CAT-DOG-
-CAT-DOG-NULL

关于Python-验证生成的幂集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50172671/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress