如何将数字插入字符串
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
我的意思是我们有一些像
这样的字符串'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