0

我有一个这样的列表列表:

table_data = [['vlan1', '0013.F200.0058', '192.168.2.2'], 
              ['vlan100', '0013.F200.0058', '192.168.110.2'], 
              ['vlan50', '0013.F200.0058', '192.168.30.2'], 
              ['vlan20', '0010.600a.7026', '192.168.30.4'], 
              ['vlan2', '70ca.9b99.6a82', '192.168.30.1']]   

我想按vlan号排序,我该怎么做?所以 vlan1 列表,然后 vlan2 列表等

我试过分开数字,但我不知道该怎么做,我认为这不是正确的方法。

for i in table_data:
        if i[0].startswith('vlan'):  
            vlan_number = i[0][4:]

我可以用这样的一个列表来做到这一点:

sorted(table_data, key = lambda x: int(x.split("n")[1]))

但是如何将其扩展到列表列表?

4

1 回答 1

5

试试这个:

sorted(table_data, key=lambda x: int(x[0][4:]))

在您原来的基于排序的解决方案中,您应该修改 lambda 函数。x[0] 表示每行的第一列。x[0][4:] 会忽略前 4 个字符,即“vlan”。

于 2013-06-14T14:15:19.627 回答