多次编辑多行字符串中的值并创建大量新字符串?

Posted

技术标签:

【中文标题】多次编辑多行字符串中的值并创建大量新字符串?【英文标题】:Editing value in a multiline-string numerous times and creating numerous new strings? 【发布时间】:2021-10-28 05:51:45 【问题描述】:

我正在使用基于 python 的软件,它利用长的多行字符串来运行。我想创建一个循环,在其中我将一个值更改为例如40 个其他值并创建 40 个新字符串,其中除了目标值之外的所有内容都相同。

我通过以下代码实现了“我想要什么”作为输出:

for x in range(0, 40000, 40):
for line in mystring.splitlines(keepends=True):
    line = line.replace("24000", str(x))
    line = line.strip()
    print(line)

它会打印所有 40 个长字符串,但如何将它们保存到新字符串并在软件中使用?

我也可以通过以下代码实现 1 次迭代,但只能实现 1 次:

for x in range(0,40000,40):
   mystring = mystring.split("\n")
   mystring[17] = "Constant = " + str(x)
   mystring = "\n".join(mystring)
   print(mystring)

希望我的问题有意义。我只想要 40 个(在本例中)相同的新字符串,除了一个值在整个过程中发生变化。

谢谢

【问题讨论】:

【参考方案1】:

或者如果您想将输出保存到新字符串中:

output_string = ""
for x in range(0, 40000, 40):
    for line in mystring.splitlines(keepends=True):
        line = line.replace("24000", str(x))
        line = line.strip()
        output_string += line + "" 
              # beetwen quotation marks you can put the string with 
              # which You would like to split every line.

【讨论】:

【参考方案2】:

您应该将新的字符串值存储在一个列表中。更改您的第一个示例将如下所示:

output_strings = []
for x in range(0, 40000, 40):
    for line in mystring.splitlines(keepends=True):
        line = line.replace("24000", str(x))
        line = line.strip()
        print(line)
        output_strings.append(line)

【讨论】:

以上是关于多次编辑多行字符串中的值并创建大量新字符串?的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSPredicate 过滤 NSDictionary 中的值并返回键数组

为啥我的代码没有为表达式字符串计算正确的值?

如何将多行中的值加入一个文本框(或一个字符串)

winapi中多行编辑中的意外行为

如何从 php 脚本更改活动的字符串值并重新创建 apk 文件

Replace() 不适用于多行字符串和大括号