我想基于第一列的值从2列对象中分组数据。我需要列表中的这些数据,以便我可以在之后进行分类。我正在大量机器上用snmp获取接口数据。在这个例子中,我有2个接口。我需要按照接口分组的数据,最好在列表中。按值分组数据按第一列
数据我得到的是在目标项目:
for i in item:
print i.oid, i.val
ifDescr lo
ifDescr eth0
ifAdminStatus 1
ifAdminStatus 1
ifOperStatus 1
ifOperStatus 0
我想获得这个数据在第一列的值列表中的排序,是这样的:
我想获取列表中这个数据,所以它看起来是这样的:
名单= [[10,1,1],[eth0,1,0]
解决方案我公顷我很肮脏,很长,我很尴尬地发布在这里,所以任何帮助表示赞赏。
这是我的解决方案,让您更好地了解我在说什么。我所做的是将每个接口数据放在基于item.oid的单独列表中,然后通过cpu列表迭代,并将其与基于item.iid的内存和名称进行比较。最后,我有所有的数据在cpu列表中,其中每个接口是列表的一个元素。这个解决方案有效,但对我的需求来说太慢了。
cpu=[]
memory=[]
name=[]
for item in process:
if item.oid=='ifDescr':
cpu.append([item.iid, int(item.val)])
if item.oid=='ifAdminStatus':
memory.append([item.iid, int(item.val)])
if item.oid=='ifOperStatus':
name.append([item.iid, item.val])
for c in cpu:
for m in memory:
if m[0]==c[0]:
c.append(m[1])
for n in name:
if n[0]==c[0]:
c.append(n[1])
cpu=sorted(cpu,key=itemgetter(1),reverse=True) #sorting is easy
是否有pythonic,短而快的方式做到这一点?限制因素是我用key = data值获取2列对象中的数据。
感谢您的帮助,但我更新了问题,以便更清楚地了解我想要的内容。 – Notoc