gpt4 book ai didi

Python 列表索引并返回项目

转载 作者:行者123 更新时间:2023-11-30 23:13:57 24 4
gpt4 key购买 nike

所以这是一个我似乎感到困惑的简单问题,我一直在研究这个输入问题并尝试将用户输入的某些部分存储到分段列表中。

用户输入将输入CNF(联合范式)。示例:+ = or、* = and、( and ) 内的任何内容都是子句

(A+B)*(C+D)

因此,由于此输入有两个子句,我需要将每个子句作为自己的项目存储到列表中。我无法弄清楚如何遍历我已经创建的列表并让我的 if 语句对每个子句进行分段,我从逻辑上理解它应该如何工作,我只需要与将某些内容动态存储到相关的语法和方法方面的帮助列表。

我完全理解为什么索引不起作用,我基本上是在寻找与索引方法相反的方法,我需要找到与我的索引关联的项目。

例如,当我找到一个左括号“(”时,我需要开始将一个新子句存储到我的列表中,到目前为止我只找到了如何返回索引本身,而不是通过索引返回项目。这应该是这是一个简单的解决方案,但我根本找不到与明智地显示此方法相关的任何内容。

cnf = input("CNF: ")
cnf_input = list(cnf)

cnf_input_len = len(cnf_input)
i = 0
##this count resets when it sees a ")"
claus_count = 0
while i < cnf_input_len:

claus_list = cnf_input.append(i)
print(cnf_input.index("B"))
if cnf_input.index(i)=="(":
print('Cut here')
i=i+1

我的代码作为指导

最佳答案

看来你把事情搞得太复杂了。只需使用 str.split接下来是 str.strip获取列表中的各个子句

>>> [elem.strip('()') for elem in "(A+B)*(C+D)".split("*")]
['A+B', 'C+D']

您甚至可以扩展它以将子句的各个文字作为元组或列表来获取列表的列表

>>> [elem.strip('()').split('+') for elem in "(A+B)*(C+D)".split("*")]
[['A', 'B'], ['C', 'D']]

您甚至可能想尝试使用正则表达式

>>> re.findall(r'([^()]+?)\+([^()]+?)', "(A+B)*(C+D)")
[('A', 'B'), ('C', 'D')]

关于Python 列表索引并返回项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29017365/

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