1. ホーム
  2. python

[解決済み] オブジェクトのリストをシャッフルする

2022-03-19 20:05:41

質問

オブジェクトのリストがあり、それらをシャッフルしたいのです。私は random.shuffle メソッドがありますが、これはリストがオブジェクトである場合に失敗するようです。オブジェクトをシャッフルする方法、またはこれを回避する他の方法はありますか?

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

シャッフルの動作に注意 所定の位置に であり、Noneを返す。