0

それは一口でした!

実験の一環として、448 項目の配列を生成します。各インデックス (項目) は次のよう{'stimulus bin': 1, 'label': 2, 'stimID': 1, 'fileName': 'stim1.png'}に表示され、全体として選択する必要があります。

現在、そのマスター リストは、それぞれ 56 項目を含む 8 つのカテゴリ (つまり、0 ~ 55、56 ~ 112、...、391 ~ 447) に細分化されています。

これが私がやりたいことです:

マスター リストの 8 つのカテゴリのそれぞれから 4 つのインデックスをランダムに選択し、それらをマスター リストから削除して、特定のインデックスを 1 回だけ選択できるようにする 14 のサブリストを作成したいと考えています (そして、その選択を適切なインデックスに追加します)。リスト。

各リストには、list1 ~ list14 のような任意の名前を付けることができます

I should end up with 14 lists of 32 items each.

I'm pretty stuck as to how to go about this. I'm somewhat new to Python, though not completely clueless I think.

Any suggestions would really help me out!

4

2 に答える 2

0

448 項目のマスター リストは、辞書のリストのリストとして実装できます。名前を付ける必要はまったくありません (必要な場合は、辞書に別のフィールドを追加するだけです)。

masterList = []

for i in range(0, 8):
    for j in range(0, 56):
        category = []
        item = {'stimulus bin': 1, 'label': 2, 'stimID': 1, 'fileName': 'stim1.png'}
        category.append(item)

    masterList.append(category)

次に、list.pop(i)(リストのインデックスからアイテムを削除しiて返す) と(両端を含むとrandint(a, b)の間のランダムな整数) を使用して、各カテゴリから 4 つのランダムなオブジェクトを削除し、それらをサブリストに貼り付けます。ab

from random import randint

def sublist(masterList):
    result = []
    for category in masterList:
        for i in range(0, 4):
            result.append(category.pop(randint(0, len(category))))

その関数は 1 つのサブリストを作成します。

于 2013-08-18T01:16:15.390 に答える