2016-11-17 20 views
0

私はさまざまな長さのリストを持っています。リストの各リストから、ランダムに10個のアイテムを選択する必要があります。次に、各リスト項目をカンマで区切って1つのリストに結果を結合する必要があります。 (Plsは以下の出力を参照してください)。これがPythonで可能かどうかは不明です。どんな助けもありがとう。Pythonのリストのリストからランダムな項目を選択してください

[[-26.0490761 27.79991 ] 
[-25.9444218 27.9116535] 
[-26.1055737 27.7756424] 
..., 
[-26.036684 28.0508919] 
[-26.1367035 28.2753029] 
[-26.0668163 28.1137161]] 

[[ 45.35693 -63.1701241] 
[ 44.6566162 -63.5969276] 
[ 44.7197456 -63.48137 ] 
    ..., 
[ 44.624588 -63.6244736] 
[ 44.6563835 -63.679512 ] 
[ 44.66706 -63.621582 ]] 

私はFoliumを使用してマップ上にプロットするために適している。この形式で出力を取得したいと思います。

[[-26.0490761 27.79991], 
    [-25.9444218 27.9116535], 
    [ 44.6563835 -63.679512 ], 
    [ 44.66706 -63.621582 ]] 

私はこのコードを試みたが、何が悪かったのかわからない:

このような
for cluster in clusters: 
    for i in range(2): 
     modifiedlist.append(cluster) 
+2

あなたは誰かにあなたのためにそれをやりたがっています。なぜなら、時間を費やしたくないからです。 – quantummind

+0

@quantummind:いいえ、そういう意味ではありません。私が試したコードを追加するのを忘れました、今私はそれを追加しました。 – user3447653

答えて

1

何かがモジュールrandom使用して簡単です:

import random 

def sampleFromLists(lists,n): 
    """draws n elements from each list in lists 
returning the result as a single list""" 
    sample = [] 
    for subList in lists: 
     sample.extend(random.sample(subList,n)) 
    return sample 

サンプルデータ(のリストのリストを2要素リスト):

data = [ 
    [[-26.0490761, 27.79991], 
    [-25.9444218, 27.9116535], 
    [-26.1055737, 27.7756424], 
    [-26.036684, 28.0508919], 
    [-26.1367035, 28.2753029], 
    [-26.0668163,28.1137161]], 

    [[ 45.35693, -63.1701241], 
    [44.6566162 -63.5969276], 
    [44.7197456, -63.48137], 
    [44.624588, -63.6244736], 
    [44.6563835,-63.679512], 
    [44.66706, -63.621582]] 
] 

そして:

>>> sampleFromLists(data,2) 
[[-26.036684, 28.0508919], [-26.0490761, 27.79991], [44.7197456, -63.48137], [44.6563835, -63.679512]] 
+0

お返事ありがとうございます。しかし、[[1,2,3,4]、[5,6,7,8]、[9,10,11,12]]を渡して各リストから2つの数字をランダムに選択すると、出力は[[2,3] [5,6]、[9,12]](各リストからランダムに2つの要素)。 – user3447653

+0

必要に応じて上記のコードで 'extend'を' append'で置き換えてください。あなたのデータは2要素リストのリストのようであることに注意してください。*私のコードを*あなたの*データで実行すると(リストのすべてが一つの大きなリストであると仮定して)、出力は2要素リストのリストしたがって、あなたの設定を誤解しない限り、私は自分のコードがそのまま動作するはずです。 –

+0

@ user3447653編集内容は私が何を意味するかを示しています。サンプルに質問のデータを反映させました。 –

0
import random 

x = [[1,2],[3,4],[5,6],[7,8],[9],[7675,6456,4],[5,6]] 

z = [] 
for i in range(10): 
    y = random.choice(x) 
    z.append([random.choice(y), random.choice(y)]) 

print(z) 

random.choice()は(我々の場合、リストには)与えられた入力からランダムにアイテムをピックアップ。

関連する問題