如何将数字插入字符串

How to insert number into string

我的意思是我们有一些像

这样的字符串
'Some text here (text..="{}",text..="{}") \
generator/number/text..={}/text..={}`'

我想向这个字符串中插入一系列数字,得到如下输出:

'Some text here (text..="{0}",text..="{1}") \
generator/number/text..={0}/text..={1}`'

对了,也可以是这样的:

'Some text here (text..="{0}",text..="{1}", text..="{2}") \
generator/number/text..={0}/text..={1}`/text..={2}'

你可以这样做:

a_str = 'Some text here (text..="{}",text..="{}"\ngenerator/nubmer/text..={}/text..={}'

formatter = lambda line: line.format(*map(lambda num: f"{{{num}}}", range(line.count("{}"))))

formatted = '\n'.join(map(formatter, a_str.split('\n')))

print(formatted)

输出:

Some text here (text..="{0}",text..="{1}"
generator/nubmer/text..={0}/text..={1}

您可以根据您的输入动态创建它。

text_list = ["text A", "text B"]

output = 'Some text here (' + \
    ','.join('text..="{}"'.format(single_text) for single_text in text_list) + \
 ')'

如果您不需要将其作为 "...".format() 字符串,但可以直接输入您的值。

这将导致

>>> output
'Some text here (text..="text A",text..="text B")'

如果您还需要第二行,请根据需要重复和调整 ','.join(...) 部分,根据自己的喜好随意调整。

使用 f 字符串:

number = 23 # fore example

example_string = f"String {number}"

会输出:

String 23

使用 f 字符串(见字符串前的 f )意味着你放在大括号内的任何东西都是一个变量,这是将数字放入字符串的最干净的方法。

base_1 = 'Some text here'
base_2 = 'generator/nubmer/'

for j in range(10):
  base_1 += "text..={"+ f"{j}" + "},"
  base_2 += "text..={"+ f"{j}" +"}/"

base_1 = base_1[:-1]
base_2 = base_2[:-1]
print(base_1, '\n', base_2)




Some text heretext..={0},text..={1},text..={2},text..={3},text..={4},text..={5},text..={6},text..={7},text..={8},text..={9} 
 generator/nubmer/text..={0}/text..={1}/text..={2}/text..={3}/text..={4}/text..={5}/text..={6}/text..={7}/text..={8}/text..={9}

我个人的偏好是使用 %:

a = 1
b = 3.21209

x = 'This is a string with an integer: %i, a 2-decimal float: %.2f and a 5-decimal float: %.5f' % (a, b, b)
print(x)

这是一个字符串,包含一个整数:1,一个 2 位小数浮点数:3.21 和一个 5 位小数浮点数:3.21209