无序排列对象列表

  • 问题:
  • 我有一个对象的列表,我想洗牌它们。我想我可以用随机洗牌方法,但当列表是对象时,这似乎失败了。有没有一种方法来洗牌对象或其他方法来解决这个问题?在

    import random

    class A:
    foo = "bar"

    a1 = a()
    a2 = a()
    b = [a1, a2]

    print(random.shuffle(b))

    这将失败

  • 答案:
  • random.shuffle应该行得通。下面是一个示例,其中的对象是列表:

    from random import shuffle
    x = [[i] for i in range(10)]
    shuffle(x)

    # print(x) gives [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
    # of course your results will vary

    请注意,shuffle在就地工作,并且返回None