我有一个列表列表,基于每个列表的第一个元素,我要对列表进行排序。这些指标的样本:
vlan1
usb0
eth1
vlan4
vlan20
如果它们的长度与vlanX相同,我会做如下操作:
^{pr2}$我想以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元素进行排序,这不是我想要的。在
您可以编写一个函数来拆分名称(prefix,index),并将其传递给
key
参数。在如果希望按前缀降序,按索引升序,则函数会将索引转换为负数,以便在列表反转时顺序正确。在
[更新]
很公平。在
^{pr2}$编一个口述怎么样?在
相关问题 更多 >
编程相关推荐