(score()
は、単一の整数を返した場合、彼らは無関係である)、私はこの問題は、あなたのループ構造にあると思います。おそらく現時点で
with open("GFOLD_Hisat2.csv", 'wb') as file3:
filewriter = csv.writer(file3)
for i in a:
filewriter.writerow((score(list1, list2, i),))
をしたい
代わりの
for i in a:
with open("GFOLD_Hisat2.csv", 'wb') as file3:
filewriter = csv.writer(file3)
filewriter.writerow(score(list1, list2, i))
あなたはファイルを開くとi
の値ごとに新しい作家を作成しています。私はscore
の結果をtuple
に変えました。完全にループを回避 -
In [8]: a = [1,2,3,4,5]
In [9]: with open('a.csv', 'wt') as f:
wr = csv.writer(f)
for i in a:
wr.writerow((i,))
...:
In [10]: !cat a.csv
1
2
3
4
5
は、私はまた、ロブが指摘するように、あなただけの理解を使用することができますあなたは'wb'
でファイルを開いている理由はわかりません。私の答えは、あなたの既存のコードの間違いを説明することに焦点を当てています。
出力ファイルに実際には1つの列しか含まれていない場合は、csv.writer
を使用する理由はほとんどありません。単にあなたがファイルを開くと、ループの順序を変更する必要があり、次の
a = [1,2,3,4,5]
b = [score(list1, list2, i) for i in a]
with open('a.csv','wt') as f:
f.writelines('\n'.join(map(str,b))
まあリスト1とリスト2は何ですか?それが事実を変えるので、実際のリストですか?また、あなたがそれらを必要としているかどうか確かめて、その括弧の中に 'val'を入れてみましたか? – SAMO
'list1'と' list2'を表示するために質問を修正して、あなたの望む出力が何であり、 –
コードを簡単にするために少し修正しました。 – Labrat