在我的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
将该列表退回给我:
[('18',), ('13',), ('1',), ('2',), ('1',)]
OID返回的所有值都是整数
问题:
如何获得仅包含整数的列表,如下所示:
[18, 13, 1, 2, 1]
任何人都知道如何解决我的问题?
答案 0 :(得分:2)
res = [('18',), ('13',), ('1',), ('2',), ('1',)]
res = [int(x[0]) for x in res] ## [18, 13, 1, 2, 1]
答案 1 :(得分:0)
使用map
a = [('18',), ('13',), ('1',), ('2',), ('1',)]
print(map(lambda x: int(x[0]), a))
输出:
[18, 13, 1, 2, 1]
虽然这有效,但列表理解更有效。看看this回答
答案 2 :(得分:0)
您可以使用列表理解:
[int(x[0]) for x in res]