我想基於第一列的值從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