2016-11-11 6 views
3

のリストからリストのX番号を選択します。ランダムに私は次のようなものを持っているリスト

pen = [1, 2, 3, 4] 
pencil = [2,3,4,5] 
paper = [3,4,5,6] 
group_of_items = [pen, pencil, paper] 

私は結果のようなものであるようにランダムにリストのリストから、リストの特定の番号を選択しますこれは:

[pencil, pen] 

次のものが私の状況に合わせて変更されました。

import random 

pen = [1, 2, 3, 4] 
pencil = [2,3,4,5] 
paper = [3,4,5,6] 

group_of_items = [pen, pencil, paper] 

num_to_select = 2 
list_of_random_items = random.sample(group_of_items, num_to_select) 
print(list_of_random_items) 

これは次のようなものです。

[[2, 3, 4, 5], [1, 2, 3, 4]] 

だから、葉巻はほとんどないが、シガーはない。私もこれを発見した。

import numpy as np 

pen = [1, 2, 3, 4] 
pencil = [2,3,4,5] 
paper = [3,4,5,6] 
group_of_items = [pen, pencil, paper] 
num_to_select = 2 

random_list = np.random.choice(group_of_items, num_to_select, replace=False) 

print(random_list) 

しかし、リストのリスト(多次元)では機能しません。

どのように目標を達成できますか?

ああ、私はリピートしたくありません。

注:私のコーディング経験はかなり限定されています。ほとんどの場合、私はオンラインで見つけたものをコピーして貼り付けますが、小さな変更しか行いません。

を編集してください。上記は簡単に一緒にテストされたものです。私が作ったのは、PythonAnywhereを使ったTwitterツイートボットです。それはまさにその通りですが、もっとランダムな機能を追加したいと思います。

私は、私はPythonのリストにオーバープルのGoogleスプレッドシートのつぶやきのリストを持っているので、同じよう:

quotes = tweet_sheet.col_values(3) 

私は、リストの1つのマスタリストにまとめ、このような複数のリストを持っています。しかし、私はプログラムを実行するたびにすべてのリストからつぶやきたくはありません。

今私はこのようなものを使用しています。

sources = [tips,feed,quotes... etc... 

プログラムの実行時に使用するリストのマスターリストからx個のリストを選びたいと考えています。 (それは面白いと言われています)

私はこれまでのコメントから推測しています。コードの残りの部分をもう少し微調整すれば、そうです。ここで

+1

どのようにその結果は、あなたが望むものではないのですか?リストは変数名を出力しません。 –

+0

希望の出力の例を挙げてください。 –

+1

文字列レベルでデータを処理しない限り、そのことはできません。 –

答えて

2

は、辞書を使用してのアプローチです:

>>> pen = [1, 2, 3, 4] 
>>> pencil = [2,3,4,5] 
>>> paper = [3,4,5,6] 
>>> item_dict = {'pen':pen, 'pencil':pencil, 'paper':paper} 
>>> import random 
>>> item_names = list(item_dict.keys()) 
>>> item_names 
['pencil', 'pen', 'paper'] 
>>> sample = random.sample(item_names,2) 
>>> sample 
['pencil', 'pen'] 
>>> item_dict[sample[0]] 
[2, 3, 4, 5] 
>>> item_dict[sample[1]] 
[1, 2, 3, 4] 

だから今、あなたは文字列リスト間の関連性を持っている:

>>> "The first list sampled was {}. Here's the list {}".format(sample[0], item_dict[sample[0]]) 
"The first list sampled was pencil. Here's the list [2, 3, 4, 5]" 
>>> 
+0

非常に良い。コメントから、私はこのレベルの特異性が必要だとは思わないが、将来的に誰かを助けるかもしれないいいクリーンな例だ。一緒に入れてくれてありがとう。 –

関連する問題