Skip to main content
 首页 » 编程设计

python之在 Python 中通过排序引入一些随机性

2025年05月04日8jyk

通过这段代码,我得到了基于元素长度的排序列表。

>>> a = [[1,2,3],[3,4,5,6],[7,8],[9,10,11]] 
>>> print sorted(a, key=lambda m: len(m)) 
[[7, 8], [1, 2, 3], [9, 10, 11], [3, 4, 5, 6]] 

在对list的列表进行排序时,我需要在元素长度相同的情况下引入一些随机性。对于前面的例子。我需要得到排序的结果

[[7, 8], [1, 2, 3], [9, 10, 11], [3, 4, 5, 6]] 

或

[[7, 8], [9, 10, 11], [1, 2, 3], [3, 4, 5, 6]] 

随机。

我怎样才能用 Python 实现它?

请您参考如下方法:

Python 的排序函数是稳定的,这意味着比较相等的元素的顺序与原始列表相同。因此,您可以将列表打乱,然后根据长度排序。

import random 
 
a = [[1,2,3],[3,4,5,6],[7,8],[9,10,11]] 
random.shuffle(a) 
a.sort(key = len) 

请注意,此代码就地对列表 a 进行洗牌和排序。