2017-07-03 27 views
-2

我對編程(python)相當陌生,並且正在尋找關於如何最好地實現此腳本的建議。我給了它幾個gos,但我想我可能會從一開始就錯誤地接近它。Python設計 - 記錄一個數字出現在一個序列中的次數,迭代多個序列

我所擁有的是一個文本文件。它包含多行開獎號碼:

1, 2, 3, 4, 5 
6, 4, 2, 3, 5 
... 

我想在每行讀取每個值,和每行保持特定數量的發生的計數。

後來,在每一行被檢查併發生計數之後,我想有能力檢查最少的球。這意味着我需要能夠知道在線1被檢查後,球6至50從未被拉出。

我的方法是創建一個腳本與目標球

Ball: 
def __init__ (self, name): 
    Ball.name = name 

def count_Occurance() 
    Count() 

然後我讀的文本文件,它拆分成線,並分割每行到單個值:

Read("lottoresults.txt", "r") 
line = readline.split("/n") 

和創建和陣列從它

line_array = [line] 

然後我對存在的所有球創建一個數組

ball_array = range(1,50) 

然後我運行line_array之間的交叉和ball_array

如果球拉到匹配的my_array一個號碼,我創建了球對象的實例與價值(V),因爲它的名字:

for each v in line_array: 
PulledBall = Ball(v) 

然後我調用該方法來計算它

PulledBall.countOccurance() 

爲T他是做這件事的最佳方式?我目前正在學習如何正確地完成這些步驟,但如果總體方法錯誤,我寧願重新開始,並做得更好。

+1

您的代碼中有語法錯誤。你試過運行過嗎? –

+0

對不起,我的意思是說 - 我對編程相當陌生,並沒有在我自己的電腦上。我從記憶中寫下了這樣的內容,用簡寫的方式表達了方法 –

回答

-1
from collections import Counter 

with open("lottoresults.txt") as inf: 
    nums = [int(i) for i in inf.read().replace(",", "").split()] 

counts = Counter(nums) 
+0

謝謝休 - 那真的很好,但是給了我確切線條的數量。我在「inf.read()。replace(」,「,」\ n「)。split()」部分中添加了「\ n」,它給出了每行之後各個值行的數量。 –

+0

這很奇怪 - 因爲當我將這個確切的代碼剪切並粘貼到IDLE(Python 3.5)中並針對測試文件運行它時,它會計算單個數字(而不是行)。 –

相關問題