2017-05-17 9 views
-2

pythonで配列と混同してください。私は同じ値に基づいて配列をグループ化したい。同じ値に基づいて配列をグループ化する方法

コード:

enter image description here

id_disease = ['penyakit_tepung','hawar_daun'] 
for id_disease in id_disease: 
    qres = acacia.query( 
     """ 
     PREFIX tst: <http://www.semanticweb.org/aalviian/ontologies/2017/1/untitled-ontology-10#> 
     SELECT ?disease ?patogen 
     WHERE { 
      ?disease tst:caused_by ?patogen . 
      FILTER regex(str(?disease), "%s") . 
     } """ % id_disease) 

    for row in qres: 
     for r in row: 
      print(r.replace('http://www.semanticweb.org/aalviian/ontologies/2017/1/untitled-ontology-10#','')) 
     print("\n") 

出力:

penyakit_tepung 
spaerotheca_sp 

penyakit_tepung 
oidium_sp 


penyakit_tepung 
erysiphe_sp 


hawar_daun 
cylindrocladium_sp 


hawar_daun 
kirramyces_sp 


hawar_daun 
phaeophleopspora_sp 

期待アレイ:

[['spaeerotheca_sp','oidium_sp','erysiphe_sp'].['cylindrocladium_sp','kirramyces_sp','phaeophleopspora_sp']] 

手順はそれを取得する方法を知っていれば、私を助けてください。

+4

をしてくださいコードをコピーしてあなたの質問に直接貼り付け、スクリーンショットを撮ってはいけません。これにより、私たちのマシンであなたのコードを試してみるのが簡単になります。 – moritzg

+0

編集: ありがとうございました。 – Axaxaxaxax

答えて

0

それは

listoflists = [] 

for row in qres: 
    a_list = [] 

     for r in row: 
      data = r.replace('http://www.semanticweb.org/aalviian/ontologies/2017/1/untitled-ontology-10#','') 
      a_list.append(data) 

    listoflists.append(a_list) 

print listoflists 
+0

このような出力: '[[[ 'hawar_daun'、 'cylindrocladium_sp']、[ 'penyakit_tepung'、 'spaerotheca_sp']、[ 'penyakit_tepung'、 'erysiphe_sp']、 'oidium_sp']、 'penyakit_tepung' ['hawar_daun'、 'phaeophleopspora_sp']、['hawar_daun'、 'kirramyces_sp']] ' ですが、上記の**予想配列**にする必要があります。 – Axaxaxaxax

+0

@ AlvianSupriadiあなたの 'output'と' Expected Array'はどちらも異なります。 'qres'データを追加してください – mkHun

+0

qresはSPARQL – Axaxaxaxax

0

する必要があります私が取る一般的なアプローチは、リストに各キーをマッピングする辞書を作成することです。

ご入力リストは、次のようになります言う:

[ 
['a', 'A'], ['a', 'B'], 
['b', 'D'], ['b', 'E'], 
['a', 'C'] 
] 

私はどうなるのかは、次のとおりです。

map = {} 
for item in input: 
    key, value = item # destructuring assignment 
    if not key in map: map[key] = [] # initialize a spot for the key if not seen before 
    map[key].append(value) 

今、私たちはこのようになりますマップが必要です。

{'a': ['A', 'B', 'C'], 'b': ['D', 'E']} 
+0

の結果をどのように出力するのですか? – Axaxaxaxax

+0

@ AlvianSupriadi Googleを基本的な質問に使用する方が簡単ですか? – AKSW

+0

@AlvianSupriadiあなたはすべての小さなステップをスプーンで食べさせますか? StackOverflowを使用してあなたの宿題をする人を見つけてください。 –

関連する問題