-1
私のプライムリストファイルはCSV形式で、区切り記号はコンマで、素数は50000までです。ファイルにはランダムな改行もあります。Python max() - リストの最大要素がCSVファイルの最大要素と同じではありません
問題:49999はファイル内で最大の番号ですが、primes_list
の最大要素は9973です!
[Primes
の後のすべてのプライムは、long
タイプに変換され、forループの値を使用します。 for prime in Primes
]
私の問題は、以下の最小限のPythonコードで間違っていることです。
Pythonのバージョンは、2.76であるLinuxのミントで17
編集実行されている - のコメントの後に修正されたコードを、
import csv
def factorise()
primes=[]
with open(primefile,'r') as csvfile:
primes_data=csvfile.read().replace('\n','').split(',')
primes=primes_data
print('Number of elements is: '+str(len(primes)))
print('First element is: '+primes[0])
print('Last element is: '+primes[-1])
csvfile.close()
print('Largest element is: '+max(primes))
出力例;
Number of elements is: 5134
First element is: 2
last element is: 49999
Largest element is: 9973
カップル愚かなバグを修正( ' '\ nの'')を交換スプリット。( '')Primes_dataを使用していますが、素数= Prime_dataはしていません。これはあなたのコードにあるのか、それともここでの誤植ですか?複数化の違いに注意してください。また、csvfile.closeは関数であり、単にメモリ内の位置を参照しているだけです。あなたはそれを呼び出す必要があります、csvfile.close() –
二重引用符で何を意味するのかよく分かりません。大文字で変数を命名するのは避けるべきです。それはクラス命名規則なので、それらの変数だけです。あなたのスニペットには多くの問題があります。私は適切なPythonの規則を実装し、あなたのタイプミスを修正します。特にこれがあなたのソースコードにある場合は、修正してください。 –
が修正されました。それらの両方は、ここでタイプミスでした。まだ質問があります –