2016-09-21 5 views
0

ファイルを読み込んでsplit()メソッドでその列のリストを作成し、このリストを別のメソッドに渡したいとします。誰かがそれを達成する最も無作法な方法を説明することができますか?pass pythonはtpメソッドをリストします

def t(fname): 
    k = [] 
    with open(fname, 'rU') as tx: 
     for line in tx: 
      lin = line.split() 
      k.append(lin[1]) 
      res = anno(k) 
      for id in res.items(): 
        if i > 0.05: 
         print(i) 

「k」の要素を1つのリストとしてanno()メソッドに渡したいとします。しかし、このように、私はリストの数を持っていますが、1つではありません(必須)。

答えて

1

の代わりに、あなただけのような、特定の文のループを持っていない理由は1で、そのリスト1に追加しますk = [(line.split())[1] for line in tx]

with open(file) as:の代わりにtx = open(file)を使用していますので、いつでも必要に応じてtx.close()を使用して閉じることができます。

def t(fname): 
    k = [] 
    tx = open(fname, 'rU') 
    k = [(line.split())[1] for line in tx] 
    tx.close() 
    res = anno(k) 
    for i in res.items(): 
     if i > 0.05:print(i) 
+1

このコードスニペットは質問を解決するかもしれませんが[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-あなたの投稿の質を向上させるのに本当に役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – jadsq

+0

@jadsq完了。はい、私は将来の回答に留意しています。 – harshil9968

0

新しいリストを作成したい場合は、lsit内包表記はれる好ましい方法を食べた:

def t(fname): 
with open(fname, 'rU') as tx: 
    k = [(line.split())[1] for line in tx] 
    res = anno(k) 
    for i in res.items(): 
     if i > 0.05: 
      print(i) 
+0

'line.split()[1]'の代わりに '(line.split())[1]'を使う理由はありますか? – jadsq

+0

明瞭にするためです – proton

+0

私は明らかに私を混乱させました... – jadsq

0

あなたはちょうどネスティングを間違えたと思います。 forループの外側で、リストをビルドした後にanno()に電話する必要があります。

def t(fname): 
    k = [] 
    for line in open('fname'): 
     k.append(line.split()[1]) 
    res = anno(k) 
関連する問題