2017-12-09 11 views
0

個人的な使用のためのコードを準備しています。これは歴史的な宝くじ番号に基づいており、各グループのパーセンテージ部分を示しています。 、ファイルの各ラインを介して開始条件に基づいたリストの増分値

my_list = [] 

with open('original numbers.txt') as f: 
    lines=f.readlines() 
    for line in lines: 
     my_array = np.fromstring(line, dtype=int, sep=' ') 
     my_list.append(my_array)`` 

コードループからすべての宝くじのデータベースを含み、1,2を割り当てる

first_group = [1,2,3,4,5,6,17,18,19,20,21,33,34,35,36,37] second_group = [7,8,9,10,11,12,22,23,24,25,26,38,39,40,41,42] third_group = [13,14,15,16,27,28,29,30,31,32,43,44,45,46,47,48,49]

original numbers.txt:私は三つのグループに抽選利用可能な番号の組を分けました3値は、それが属するグループに依存します。今

for line in my_list: for num in line: if num in first_group: new_set.append(1) elif num in second_group: new_set.append(2) elif num in third_group: new_set.append(3)

私はさらに行くことができない部分。私は、各抽選の1,2,3の合計が4より大きい場合、グループごとにパーセント値を計算するために分母であるdashの値を増加させる条件を設定しました。私が達成したい何

count = Counter(new_set) 

'''example 
    5 21 28 31 33 41 
    1  1 3 3 1 2''' 

if count[1] == 4: 
    rash_one += 1 
    for x,y in line,new_set: 
     if y == 1: 


elif count[2] == 4: 
    rash_two +=1 
elif count[3] == 4: 
    rash_three +=1`` 

は1-49の数字のためlistまたはdictを作成して、カウント値とそれらをインクリメントすることです。例えば、宝くじ抽選の場合は、ほとんど第1グループを支配していましたが、私はrash_one = 10を持っていて、2回は3回、17回は4回描かれました。だから、(今のところ)MY CODE

17 NRのために私たちにNR 2のために30%と40%を与える:

解決しよう
import numpy as np 
from collections import Counter 

my_list = [] 

with open('original numbers.txt') as f: 
    lines=f.readlines() 
    for line in lines: 
     my_array = np.fromstring(line, dtype=int, sep=' ') 
     my_list.append(my_array) 

first_group = [1,2,3,4,5,6,17,18,19,20,21,33,34,35,36,37] 
second_group = [7,8,9,10,11,12,22,23,24,25,26,38,39,40,41,42] 
third_group = [13,14,15,16,27,28,29,30,31,32,43,44,45,46,47,48,49] 
rash_one = 0 
rash_two = 0 
rash_three = 0 
new_set = [] 

for line in my_list: 
    for num in line: 
     if num in first_group: 
      new_set.append(1) 
     elif num in second_group: 
      new_set.append(2) 
     elif num in third_group: 
      new_set.append(3) 

count = Counter(new_set) 

'''example 
    5 21 28 31 33 41 
    1  1 3 3 1 2''' 

if count[1] == 4: 
    rash_one += 1 
    for x,y in line,new_set: 
     if y == 1: 
     '''stopped here''' 

elif count[2] == 4: 
    rash_two +=1 
elif count[3] == 4: 
    rash_three +=1`` 

答えて

0

from collections import defaultdict 

first_data_group = defaultdict(int) 
second_data_group = defaultdict(int) 
third_data_group = defaultdict(int) 

if count[1] == 4: 
    print(new_set) 
    rash_one += 1 
    for x,y in zip(line,new_set): 
     if y == 1: 
      first_data_group[x] += 1 


elif count[2] == 4: 
    rash_two +=1 
    for x,y in zip(line,new_set): 
     if y == 2: 
      second_data_group[x] += 1 

elif count[3] == 4: 
    rash_three +=1 
    for x,y in zip(line,new_set): 
     if y == 3: 
      third_data_group[x] += 1 
関連する問題