2016-05-27 6 views
0

私は、各単語がロングコードである行をファイルで読み込んでいますが、別のコードリストと比較するのに9または10の最初の文字(9または10文字でもよい)が必要です。 さらに、コードが2つのリストに存在するたびに、行のインデックスを格納する必要があります。行要素が別のリストに存在する場合、その行のインデントを格納する方法は?

list_to_compare=open(file,'rb').readlines() 
with open('file', 'rb') as f: 
     L=[] 
     Index=[] 
     F=[] 
     for line in f: 
       L=line.split('\t') 

       for ind in range(len(L)): 
        code=L[ind][:9] 
        code2=L[ind][:10] 
        if code and code2 in list_to_compare: 
         Index.append(ind) 
         F.append(code) and F.append(code2) # 

注意を働いていない理由を私はuderstandません:比較するリストには、各コードは「\ n」が分離されたファイルです。

私が取り組んでいる行は巨大です。

+0

なぜ機能しないのですか?期待される出力は何ですか、そして実際の出力は何ですか? – Peter9192

+0

'code'と' code2'を 'list_to_compare'とどのように比較したいですか? – Daniel

+0

私はlist_to _compareにある単語を見つける行のインデックスのリストとしてインデックスを期待しています。しかし、私は空のリストを持っています – Alice

答えて

1

andの使用は間違っています。 andは論理演算子です。 F.appendNoneを返すので、2番目の追加は決して実行されません。 よりわかりやすい変数名を使用すると、次のようになります。

with open('file', 'rb') as lines: 
    indices = [] 
    codes = [] 
    for line in lines: 
     parts = line.split('\t') 
     for ind, part in enumerate(parts): 
      code = part[:9] 
      code2 = part[:10] 
      if code in list_to_compare and code2 in list_to_compare: 
       indices.append(ind) 
       codes.append(code) 
       codes.append(code2) 
+0

ありがとう!!!私はまだ空のリストを取得しているので、私はlist_to_compareを正しく読み込まない可能性がありますか? – Alice

+0

これはうまくいきません。10番目の文字がコード中で ' - 'であるため、code2にも ' - 'を追加するとコードが入ります。 if文を導入しますか? – Alice

+0

私には分かりませんが、 'code'と' code2'の条件は何ですか。 – Daniel

関連する問題