2016-09-21 5 views
-1

は多分タイトルは奇妙に思えるが、私は特定の時間は、この場合のループのために作成する方法を検索するためbloquedよ:私が持っているpythonでこのケースのforループを作成する方法は?

data=[['nature', author1, author2, ...author n] 
     ['sport', author1, author2, ....author n] 
     .... 
     ] 

:私はこのフォーマットを持つリストのリストを持っている

このコードを試してみました:

 authors=[author1, author2, ...author n] 
     for i in range(len(authors)): 

     data = [['nature', function(names[i], 'nature')], 
       ['sport', function(names[i], 'sport') 
      ..] 

を残念ながら私はそれがこの形式で結果を返し推測:

data=[['nature', author1] 
     ['sport', author1] 
     .... 
     ] 
+0

あなたの欲望の出力が何であるかをもっと明確にすることはできますか? – MooingRawr

+0

私の望みの出力はfisrtコードですが、forループを使って –

+0

私にあなたに作業コードの例をお送りします。私はあなたが挑戦する場所を理解していません。おそらく私のコードはそれをクリアします。どのようなPythonバージョンがありますか?私は3.5上にあるので、私のコードがあなたの目的のために働くことを確かめたい。 –

答えて

0
ary_grp_Example = [["AA1", "BB1"], ["CC2", "DD2"],["EE3","FF3"]] ### Dimension as a three column matrix array (list) 
ary_grp_Example.pop(0) ## Kill the first record leaving two 

#Loop through by row (x) 
for int_CurCount in range(0,len(ary_grp_Example)): 
     print ("Row: " + str(int_CurCount) 
      + " was #" 
      + str(ary_grp_Example[int_CurCount][0]) 
      + "#" + str(ary_grp_Example[int_CurCount][1]) 
      +"#") 

#Loop through by Cell (x,y) 
for int_RowCount in range(0,len(ary_grp_Example)): 
    for int_ColCount in range(0,len(ary_grp_Example[int_RowCount])): 
     print ("Cell Data for location =(" 
      + str(int_RowCount) + "," 
      + str(int_ColCount) + ") was #" 
      + ary_grp_Example[int_RowCount][int_ColCount] 
      + "#") 

2つの数値データ[1] [1]またはデータ[1] [2]を使用すると、データにアクセスできます。行列配列または行列リストと呼ばれることもあります。 Pythonの名前は "リスト"のように見えますが、行列の配列/リストとも呼ばれる多次元リストです。

スポーツ著者2は、たとえば、ゼロベースのカウントであるため、データ[1] [2]となります。

データベースの結果セットのように、行と列でループする必要のあるすべてのデータをループします。

+0

データを行列として宣言しようとしたとき、赤色の下線付きデータが表示されます。 'data [i] [j] = ..' –

+0

自分のコードを実行して、あなたのpythonバージョン。その後、データを自分のデータに変更します。それがまだ動作するかどうかを確認してください。それがあなたがしようとしていたものかどうか私に教えてください。 –

0

あなたはこれらの行に沿って何かをしたいですか?

>>> data=[['nature', 'author1', 'author2', 'author3'],['sport', 'author1', 'author2', 'author3'],['Horses', 'author1', 'author2']] 
>>> for i in range(len(data)): 
     for x in range(1, len(data[i])): 
      print data[i][0], data[i][x] 
nature author1 
nature author2 
nature author3 
sport author1 
sport author2 
sport author3 
Horses author1 
Horses author2 
0

辞書に変換し、その後除い.... 鍵ペア

data = [['foo', 1, 2, 3], ['bar', 2,3,4]] 
dat = {i[0]: i[1:] for i in data }   
for k, v in dat.items(): 
    print("{0}: {1}".format(k, v)) 


Output 
bar: [2, 3, 4] 
foo: [1, 2, 3] 

を反復処理するには、このを行ういけません。

私は、データを最初に辞書に入れる必要があることを示しています。

+0

私は、通常、常に行列配列/多次元リストを使用します。あなたが提案している「辞書」については何が良いでしょうか? –

+0

@mthead - もう何が問題なのか分かりません。私はおそらくすぐに私の答えを削除するでしょうが、内部配列の最初の項目が常にキーであれば、キー値用に設計されたデータ構造を使用する必要があります。 – Sayse

関連する問題