Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストの要素をシャッフルする方法(random.shuffleの使い方)

Pythonには、乱数やランダム化に関連する機能をまとめたrandomモジュールが標準ライブラリとして用意されています。このモジュールに含まれるshuffle()関数を使うと、リスト内の要素の並び順をランダムに入れ替える(シャッフルする)ことができます。

shuffle()関数は、引数に渡したリストそのものを直接書き換える「in-place」な動作をする点に注意してください。戻り値はNoneであり、シャッフル結果の新しいリストは返されません。

>>> import random
>>> l1=['aa',22,'ff',15,90,5.55]
>>> random.shuffle(l1)
>>> l1
[22, 15, 90, 5.55, 'ff', 'aa']
>>> random.shuffle(l1)
>>> l1
['aa', 'ff', 90, 22, 5.55, 15]

元のリストを残したままシャッフルしたい場合

元のリストを変更せずに、シャッフルされた新しいリストを作成したい場合は、同じくrandomモジュールのsample()関数を使用します。sample()は第1引数に対象のシーケンス、第2引数に取り出す要素数を指定します。全要素をランダムな順序で含む新しいリストを得るには、要素数としてlen()でリストの長さを指定すると便利です。

>>> import random
>>> l1=['aa',22,'ff',15,90,5.55]
>>> l2 = random.sample(l1, len(l1))
>>> l2
[15, 'ff', 22, 5.55, 90, 'aa']
>>> l1
['aa', 22, 'ff', 15, 90, 5.55]

このように、状況に応じてshuffle()とsample()を使い分けることで、リストのシャッフル処理を柔軟に実装できます。

  1. Pythonでリストから要素をランダムに選択する方法【choice()とrandrange()の使い方】

    Pythonでリストからランダムに要素を選ぶ基本Pythonの標準ライブラリにはrandomモジュールが用意されており、これを使うことでシンプルなコードでリストから要素をランダムに取得できます。randomモジュールは、メルセンヌ・ツイスターアルゴリズムに基づくさまざまな擬似乱数生成機能を提供しています。本記事では、代表的な2つの方法——choice()関数とrandrange()関数を使った手法を紹介します。方法1:choice()関数を使う(最も簡単)randomモジュールにはchoice()メソッドがあり、文字列・リスト・タプルなどのシーケンス型データから1つの要素をランダムに選択できま

  2. Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け

    Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>