如何合并列表但用换行分隔?

时间:2019-04-03 04:45:38

标签: python

我有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合并所有这些数据?还是有一种更简单的方法?

2 个答案:

答案 0 :(得分: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))

答案 1 :(得分:0)

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

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