snmpwalk:获取整数列表而不是字符串

2024-10-02 00:34:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在python脚本中,我获取了5个OID,每个OID都返回一个整数 这里是我的代码:

OIDs = []
res = []

OIs.append(netsnmp.VarList(netsnmp.Varbind('1.3.6.1.4.1.45.1.1.4.1')))
OIs.append(netsnmp.VarList(netsnmp.Varbind('1.3.6.1.4.1.45.1.1.4.2')))
OIs.append(netsnmp.VarList(netsnmp.Varbind('1.3.6.1.4.1.45.1.1.4.3')))
OIs.append(netsnmp.VarList(netsnmp.Varbind('1.3.6.1.4.1.45.1.1.4.4')))
OIs.append(netsnmp.VarList(netsnmp.Varbind('1.3.6.1.4.1.45.1.1.3.1')))

for i in range(len(OIDs)):
    res.append(netsnmp.snmpwlak(OIDs[i], Version = 2, DestHost='192.168.0.1', Community='public'))
return res

print res返回列表:

^{pr2}$

OID返回的所有值都是整数

问题:

我怎样才能得到一个只有整数的列表,像这样:

[18, 13, 1, 2, 1]

有人知道怎么解决我的问题吗?在


Tags: 代码in脚本列表forrangeres整数
3条回答

使用map

a = [('18',), ('13',), ('1',), ('2',), ('1',)]

print(map(lambda x: int(x[0]), a))

输出:

^{pr2}$
  • 编辑*

虽然这样做有效,但列表理解更具执行力。看this答案

res = [('18',), ('13',), ('1',), ('2',), ('1',)]
res = [int(x[0]) for x in res] ## [18, 13, 1, 2, 1]

您可以使用列表理解:

[int(x[0]) for x in res]

相关问题 更多 >

    热门问题