在第一个元素的字符串末尾按数字后缀排序列表

Pau*_*aul 0 python sorting list

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

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']]   
Run Code Online (Sandbox Code Playgroud)

我想用vlan编号对它进行排序,我该怎么做?所以vlan1列表,然后是vlan2列表等

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

for i in table_data:
        if i[0].startswith('vlan'):  
            vlan_number = i[0][4:]
Run Code Online (Sandbox Code Playgroud)

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

sorted(table_data, key = lambda x: int(x.split("n")[1]))
Run Code Online (Sandbox Code Playgroud)

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

She*_*eng 5

试试这个:

sorted(table_data, key=lambda x: int(x[0][4:]))
Run Code Online (Sandbox Code Playgroud)

在基于原始排序的解决方案中,您应该修改lambda函数.x [0]表示每行的第一列.并且x [0] [4:]会对前4个字符产生影响,即"vlan".