2017-03-02 15 views
0

リストから特定のキーワードを抽出しようとしていますが、何らかの理由で[]空のボックスが表示されるか、pythonがリスト全体を吐き出してしまいます。これは私が今持っているコードです。ループ内のリストからキーワードを抽出する

appendxxxx12 = list(appendxxxx12) 
value0 = list(value0) 
matching = ([s for s in appendxxxx12 if value0 in s]) 
print matching 

appendxxxx12は

[382, 'Newyork.csv'] 
[446, 'Alaska.csv'] 
[491, 'Canada.csv'] 

は、私は助けを必要とすることとして出すvalue0が何であれ取ってappendxxx12内でそれを見つけると、それを印刷している内value0がどのように見えるか

1. [array([[ '-0.00043%,2/28/2017 19:00:00 OT,0.18628309032095,1,1', 
     'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Newyork.csv'], 
     [ '-0.000040%,2/28/2017 23:00:00 OT,0.0348181598043078,1,1', 
     'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Alaska.csv'], 
     [ '-0.00000007%,2/28/2017 1:00:00 PM,0.15740445010141,1,1', 
     'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Canada.csv'], 

の内側にどのように見えますか

for example 

    print answer 
    output = [382, 'Newyork.csv'] , [[ '-0.00043%,2/28/2017 19:00:00 OT,0.18628309032095,1,1',C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Newyork.csv'] 

+0

あなたappendxxx12が台無しにされているように思えます。あなたは本当に必要がありますか?2つのSTRINGSのリストを含むLISTを含むARRAYを含むLIST? appendxxx12をLISTのリストだけに減らすことができますか? –

+0

値リストはリストのリストですか? –

+0

なぜあなたは 'numpy'にタグをつけましたか?これらのリストは、最初は数が少ない配列ですか? –

答えて

2

yourlist = [['-0.00043%,2/28/2017 19:00:00 OT,0.18628309032095,1,1', 
     'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Newyork.csv'], 
     ['-0.000040%,2/28/2017 23:00:00 OT,0.0348181598043078,1,1', 
     'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Alaska.csv'], 
     ['-0.00000007%,2/28/2017 1:00:00 PM,0.15740445010141,1,1', 
     'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Canada.csv']] 
value0 = [[382, 'Newyork.csv'], 
     [446, 'Alaska.csv'], 
     [491, 'Canada.csv']] 


for nval in [(x,y) for x in value0 for y in yourlist if x[1] in y[1]]: 
     print nval[:2] 
+0

私はurコードを使用しましたが、appendxxxx12を調整する必要がありました。最初にnumpy.arrayに変換し、最後に働いたよりも(-1,2)の形になりました。 –

3

私はあなたの質問を誤解していない場合、あなたは試すことができます:

yourlist = [['-0.00043%,2/28/2017 19:00:00 OT,0.18628309032095,1,1', 
      'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Newyork.csv'], 
      ['-0.000040%,2/28/2017 23:00:00 OT,0.0348181598043078,1,1', 
      'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Alaska.csv'], 
      ['-0.00000007%,2/28/2017 1:00:00 PM,0.15740445010141,1,1', 
      'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Canada.csv']] 

value0 = [[382, 'Newyork.csv'], 
      [446, 'Alaska.csv'], 
      [491, 'Canada.csv']] 

for value in value0: 
    for list in yourlist: 
     for l in list: 
      if value[1] in l: 
       print value, list 

出力:

[382, 'Newyork.csv'] ['-0.00043%,2/28/2017 19:00:00 OT,0.18628309032095,1,1', 'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Newyork.csv'] 
[446, 'Alaska.csv'] ['-0.000040%,2/28/2017 23:00:00 OT,0.0348181598043078,1,1', 'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Alaska.csv'] 
[491, 'Canada.csv'] ['-0.00000007%,2/28/2017 1:00:00 PM,0.15740445010141,1,1', 'C:\\\\Users\\\\A\\\\Desktop\\\\Time\\\\Canada.csv'] 

は、この情報がお役に立てば幸いです。あなたはリストの内包を使用して試すことができます

+0

エラーが発生しました:TypeError: 'int'オブジェクトに属性がありません '__getitem__' –

+0

そのコードで 'getItem'を使用しているのは' value [1] 'なので、' value0 'listは上記と同じではなく、' value 'はリストの代わりに整数として割り当てられます。 –

関連する問題