如何合并列表但与新行分开?

问题描述 投票:0回答:2

我有3行文本(这是非python配置):

[[inputs.snmp.field]]
 name = "esxi-cpuload1"
 oid = ".1.3.6.1.2.1.25.3.3.1.2.1" 

我需要在“cpuload”和我的oid之后用数字增量复制96次,例如esxi-cpuload2,cpuload3等,以及我的oid的.2,.3,.4等。

到目前为止,我已经能够使用以下两个列表执行此操作:

inputs = "[[inputs.snmp.field]]"
name = "esxi-cpuload"
oid = ".1.3.6.1.2.1.25.3.3.1.2."

name2 = [name+str(i) for i in range(97)]
oid2 = [oid+str(i) for i in range(97)]

这给了我两个带数字的列表(第一行文字不需要改变)。但是,我现在如何使用Python组合所有这些数据?或者有更简单的方法吗?

python
2个回答
1
投票

如果我理解你的问题,你有一些你想用可变参数复制的文本。如果是这样,这是str.format()的一个很好的用例。

FMT = '''
[[inputs.snmp.field]]
name = "esxi-cpuload{i}"
oid = ".1.3.6.1.2.1.25.3.3.1.2.{i}"
'''

text = ''.join(FMT.format(i = i) for i in range(1, 96))

0
投票

'\n'. join(zip([inputs] * 97, name2, oid2))

带输入的第一个表达式是将该字符串转换为单个元素数组,然后将其乘以97使该字符串在数组中重复97次。

© www.soinside.com 2019 - 2024. All rights reserved.