我有一个像这样的列表列表:
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]))
但是如何将其扩展到列表列表?
答案 0 :(得分:5)
试试这个:
sorted(table_data, key=lambda x: int(x[0][4:]))
在基于原始排序的解决方案中,您应该修改lambda函数。 x [0]表示每行的第一列。并且x [0] [4:]会对前4个字符产生影响,即“vlan”。