2016-12-02 5 views
0

私はリストを取り込んで内容に基づいて異なる文字列を追加するfor-loopを作ろうとしています。これは私が持っているものです。forループはリストに追加されません

for person in hugelist: 
    if person[4]=="[b]" and person[5]=="[b]" in person: 
     person.append("tn") 
    elif person[4] == "[b]" and person[5]== "[n]" in person: 
     person.append("fp") 
    elif person[4] == "[n]" and person[5]== "[b]" in person: 
     person.append("fn") 
    elif person[4] == "[n]" and person[5] == "[n]" in person: 
     person.append("tp") 
    else: 
     person.append("N/A") 

それがないすべては、私は他の最後を無効にした場合、それがすべてでは何も追加しません、すべてのリストにN/Aを追加しています。私は間違って何をしていますか?私はそれがそうで[b], [b]としてリストに"tn"を追加したい

[['1', 'R2_3_3_2_0Y0.pct', '1355', '[n]', '[n]', '0'], 
['2', 'R3_4_3_2_90Y150.pct', '2079', '[n]', '[n]', '150'], 
['3', '2_4_4_2_0Y150.pct', '1834', '[b]', '[b]', '150'], 
['4', '3_3_3_2_0Y100.pct', '4780', '[b]', '[b]', '100'], 
['5', '3_3_3_3_90Y50.pct', '1685', '[b]', '[b]', '50'], 
['6', 'R2_4_4_2_0Y50.pct', '1237', '[n]', '[n]', '50']] 

:私が働いているファイルの

サンプルテキスト。あなたはif..elifであなたのインデックスを変更し、それがうまくいく、その後in personを削除した場合

+4

'人[5] == "B" のいずれか' true'を、または 'false'のがperson''内にあるかどうかをチェックします。 –

+2

人のサンプル内容を見せてください! – Raptor

+0

ここには貼り付けないでください。質問の一部を適切な書式で編集してください。私たちはそれを読むことはできません。 – roganjosh

答えて

1

リストはインデックス0

random_list=['0_index','1_index','2_index'] 

で開始インデックスを使用します。

hugelist=[['1', 'R2_3_3_2_0Y0.pct', '1355', '[n]', '[n]', '0'], 
['2', 'R3_4_3_2_90Y150.pct', '2079', '[n]', '[n]', '150'], 
['3', '2_4_4_2_0Y150.pct', '1834', '[b]', '[b]', '150'], 
['4', '3_3_3_2_0Y100.pct', '4780', '[b]', '[b]', '100'], 
['5', '3_3_3_3_90Y50.pct', '1685', '[b]', '[b]', '50'], 
['6', 'R2_4_4_2_0Y50.pct', '1237', '[n]', '[n]', '50']] 

for person in hugelist: 
    if person[3]=="[b]" and person[4]=="[b]": 
     person.append("tn") 
    elif person[3] == "[b]" and person[4]== "[n]": 
     person.append("fp") 
    elif person[3] == "[n]" and person[4]== "[b]": 
     person.append("fn") 
    elif person[3] == "[n]" and person[4] == "[n]": 
     person.append("tp") 
    else: 
     person.append("N/A") 

hugelistになります:

[['1', 'R2_3_3_2_0Y0.pct', '1355', '[n]', '[n]', '0', 'tp'], 
['2', 'R3_4_3_2_90Y150.pct', '2079', '[n]', '[n]', '150', 'tp'], 
['3', '2_4_4_2_0Y150.pct', '1834', '[b]', '[b]', '150', 'tn'], 
['4', '3_3_3_2_0Y100.pct', '4780', '[b]', '[b]', '100', 'tn'], 
['5', '3_3_3_3_90Y50.pct', '1685', '[b]', '[b]', '50', 'tn'], 
['6', 'R2_4_4_2_0Y50.pct', '1237', '[n]', '[n]', '50', 'tp']] 
+0

それはうまくいくはずですが、今は実行しようとすると文字列インデックスが範囲外です。 –

+0

私はそれをテストし、それが動作することを知っています、あなたは何を変えましたか? https://repl.it/EeXC/0 – depperm

+0

私は何が違っていたのか分かりませんが、あなたのコードをコピーして、今は動作します!そんなにありがとう、私は年齢のためにそのものにこだわりました! –

0

注リストのインデックスは0で始まること。 person`で

hugelist = [['1', 'R2_3_3_2_0Y0.pct', '1355', '[n]', '[n]', '0'], 
      ['2', 'R3_4_3_2_90Y150.pct', '2079', '[n]', '[n]', '150'], 
      ['3', '2_4_4_2_0Y150.pct', '1834', '[b]', '[b]', '150'], 
      ['4', '3_3_3_2_0Y100.pct', '4780', '[b]', '[b]', '100'], 
      ['5', '3_3_3_3_90Y50.pct', '1685', '[b]', '[b]', '50'], 
      ['6', 'R2_4_4_2_0Y50.pct', '1237', '[n]', '[n]', '50']] 

for person in hugelist: 
    if person[3]=="[b]" and person[4]=="[b]": 
     person.append("tn") 
    elif person[3] == "[b]" and person[4]== "[n]": 
     person.append("fp") 
    elif person[3] == "[n]" and person[4]== "[b]": 
     person.append("fn") 
    elif person[3] == "[n]" and person[4] == "[n]": 
     person.append("tp") 
    else: 
     person.append("N/A") 

print(hugelist) 

た出力、

[['1', 'R2_3_3_2_0Y0.pct', '1355', '[n]', '[n]', '0', 'tp'], 
['2', 'R3_4_3_2_90Y150.pct', '2079', '[n]', '[n]', '150', 'tp'], 
['3', '2_4_4_2_0Y150.pct', '1834', '[b]', '[b]', '150', 'tn'], 
['4', '3_3_3_2_0Y100.pct', '4780', '[b]', '[b]', '100', 'tn'], 
['5', '3_3_3_3_90Y50.pct', '1685', '[b]', '[b]', '50', 'tn'], 
['6', 'R2_4_4_2_0Y50.pct', '1237', '[n]', '[n]', '50', 'tp']] 
+0

'[t]を[b]、[b]などのリストに追加したいのですが? – depperm

+0

@depperm、誤解を​​おかけして申し訳ありません。今はどう?私はちょうど私の答えを更新しました。 – SparkAndShine

関連する問題