gpt4 book ai didi

python - 如何替换为整数变量作为搜索模式的一部分

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

我正在尝试用我构建的列表的内容替换文件中的一些占位符文本。我逐步浏览列表,边走边数,然后根据计数进行搜索。计数是一个整数,它是我在每个循环中使用的搜索词的一部分。

我这辈子都搞不清楚到底发生了什么。我已经打印了我能想到的所有内容,看起来搜索词匹配。我尝试了多种替换方法,但一直坚持使用简单的替换示例来展示。

文件中的示例文本,已加载到变量“filedata”中:

<core:para>ANSWER_1</core:para><core:para>2. Bilateral investment treaties</core:para><core:para>ANSWER_2</core:para><core:para>3. Domestic arbitration law</core:para><p>ANSWER_3</p><core:para>4. Domestic arbitration and UNCITRAL</core:para><core:para>ANSWER_4</core:para><core:para>5. Mandatory provisions</core:para><core:para>ANSWER_5</core:para><core:para>6. Substantive law</core:para><core:para>ANSWER_6</core:para><core:para>7. Arbitral institutions</core:para><core:para>ANSWER_7</core:para><core:para>8. Arbitrability</core:para><core:para>ANSWER_8</core:para><core:para>9. Requirements</core:para><core:para>ANSWER_9</core:para><core:para>10. Enforceability</core:para><core:para>ANSWER_10</core:para>

代码:

x = 1            
answerlist = ['Oranges', 'Apples', 'Mangos', 'Cherries']

for a in answerlist:
searchterm = '<core:para>ANSWER_' + str(x) +'</core:para>'
newdata = filedata.replace(searchterm, a)
x=x+1

出于示例的目的,我对上面的 answerlist 变量进行了硬编码,但这是在更大的循环中动态创建的。

预期的结果是:

<core:para>Oranges</core:para><core:para>2. Bilateral investment treaties</core:para><core:para>Apples</core:para>等等

实际结果是:

<core:para>ANSWER_1</core:para><core:para>2. Bilateral investment treaties</core:para><core:para>ANSWER_2</core:para>

我已经测试了 x 两侧的模式并且工作正常,所以问题似乎是 x,不知何故没有转换成我认为是的字符串。

知道问题出在哪里吗?

最佳答案

我将猜测您在这里要做什么。我从上面获取了您的示例文本,并将其分配给下面代码中的字符串 txt 。我可以使用 re.split连同 groupings (括号中的内容)以获取创建列表所需的数字。然后我可以遍历列表中的所有其他元素,提取我感兴趣的整数并将列表中的该值重新分配给我的替代项。在这种情况下,我只是根据大写字母进行替换,但您可以在此处放置您想要的任何列表

txt="""<core:para>ANSWER_4</core:para><core:para>5. Mandatory provisions</core:para><core:para>ANSWER_5</core:para><core:para>6. Substantive law</core:para><core:para>ANSWER_6</core:para><core:para>7. Arbitral institutions</core:para><core:para>ANSWER_7</core:para><core:para>8. Arbitrability</core:para><core:para>ANSWER_8</core:para><core:para>9. Requirements</core:para><core:para>ANSWER_9</core:para><core:para>10. Enforceability</core:para><core:para>ANSWER_10</core:para><core:para>11. Third parties - bound by arbitration agreement</core:para><core:para>ANSWER_11</core:para><core:para>12. Third parties - participation</core:para><core:para>ANSWER_12</core:para><core:para>13. Groups of companies</core:para><core:para>ANSWER_13</core:para><core:para>14. Multiparty arbitration agreements</core:para><core:para>ANSWER_14</core:para><core:para>15. Eligibility of arbitrators</core:para><core:para>ANSWER_15</core:para><core:para>16. Background of arbitrators</core:para><core:para>ANSWER_16</core:para>"""
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
pieces = re.split(r'<core:para>ANSWER_([0-9]+)</core:para>', txt)
for i in range(1, len(pieces), 2):
idx = int(pieces[i])
pieces[i] = f'A CAPITAL LETTER: {alphabet[idx]}'
print(''.join(pieces))

这将打印出:

大写字母:E5。强制性条款大写字母:F6。实体法大写字母:G7。仲裁机构大写字母:H8。可仲裁性大写字母:I9。要求大写字母:J10。可执行性大写字母:K11。第三方 - 受仲裁协议(protocol)约束大写字母:L12。第三方 - 参与大写字母:M13。公司集团大写字母:N14。多方仲裁协议(protocol)大写字母:O15。仲裁员的资格大写字母:P16。仲裁员背景大写字母:Q

关于python - 如何替换为整数变量作为搜索模式的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56064228/

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