2016-12-16 7 views
1

私は自分のリストを索引付けしようとしていて、各リストの最後の2つの値を別々に呼び出しています。例えばどのようにしてtxtファイルのリストを索引付けし、索引付けされた値を呼び出すのですか?

['Ashe', '1853282.679', '1673876.66', '1 ', '2 \n'] 
['Alleghany', '1963178.059', '1695301.229', '0 ', '1 \n'] 
['Surry', '2092564.258', '1666785.835', '5 ', '6 \n']`  

について
私は私のコードは (1、2)は、第2リスト (5、6)第3のリストを#fromを#from(1、0)最初のリスト を#fromを返したいです

私のコード今のところ含まれています

def calculateZscore(inFileName, outFileName): 
    inputFile = open(inFileName, "r") 
    txtfile = open(outFileName, 'w') 

    for line in inputFile: 
     newList = (line.split(',')) 

    print newList 

    inputFile.close() 
    txtfile.close() 


if __name__ == "__main__": 
    main()  

を(私はインデックス化する試みを行ってきたが、私のリスト内の文字列が存在するという事実は、それが困難にされています)

+0

無効なリテラルに関するエラーメッセージが表示されます –

答えて

1

まず、プログラムコードの前後に引用符を入れないでください。第二に、ここでいくつかの簡単な指針は以下のとおりです。余談として

def calculateZscore(inFileName, outFileName): 
    # use with to open files to avoid having to `close` files 
    # explicitly 
    # inputFile = open(inFileName,"r") 
    # txtfile = open(outFileName, 'w') 

    with open(inFileName, 'r') as inputFile, open(outFileName, 'w') as txtFile: 
     for line in inputFile: 
      newList = line.strip().split(',') 
      last_two = newList[-2:] # this gets the last two items in the list 
      print last_two 



# indentation matters in python, make sure this line is indented all the way to the left, otherwise python will think it is part of 
# a different function and not the main block of running code 
if __name__ == "__main__": 
    main() 

、CSVファイルを読んでいるように見えます。 Pythonには、CSV処理が組み込まれています。

def calculateZscore(inFileName, outFileName): 
    import csv 
    with open(inFileName, 'r') as inputFile, open(outFileName, 'w') as txtFile: 
     reader = csv.reader(inputFile) 
     for newList in reader: 
      last_two = newList[-2:] # this gets the last two items in the list 
      print last_two 
+0

ありがとうございます。それは間違いなく機能します。あなたはcsvファイルですが正しいですが、私はtxtファイル(idkなぜ)として扱うように言われました。私はあなたが同時に.split()と.strip()を実行できることに気がつかなかった。また、[-2:]はリストの最後の2文字を保持していると思いますか?それは将来を知る上で非常に役立ちます。 –

+0

リストの最後の2つの要素を保持します。だから '['りんご'、 'バナナ'、 'クッキー'、 'ドーナツ'] [ - 2:] == ['クッキー'、 'ドーナツ']'、 – 2ps

+0

リストの残りの部分を削除したり削除したりせずに最後の2つの値を呼び出す方法は?.....または私がすでにやっていることですか? –

0

使用

newList = line.rstrip('\n').split(',')[-2:] 

が、このラインはあなたのコード例に示していないとして、forループに関して意図されなければなりません。

関連する問題