我有一个列表列表,基于我要对列表进行排序的每个列表的第一个元素。这些指数的样本:
vlan1
usb0
eth1
vlan4
vlan20
如果它们的长度都与 vlanX 相同,我会执行以下操作:
table_data = sorted(table_data, key = lambda x: int(x[0][4:]))
我想以 vlan 先出现的方式对它们进行排序,然后其余的无关紧要。如果它们已排序但不是必需的,那就太好了(我认为不会有超过一个 USB 或 eth)。
vlan1
vlan4
vlan20
usb0
eth1
调整我的 lambda 是否很简单,或者我应该尝试制作一个函数来做到这一点?
我试过这个,但很明显,在对 vlan 进行排序时,它使 usb 和 eth 在错误的位置保持不变。
table_data = sorted(table_data, key = lambda x: x = True if "vlan" not in x[0] else int(x[0][4:]))
编辑:那个线程没有回答我想要的?这将对 vlan 元素之间的 usb 和 eth 元素进行排序,这不是我想要的。