#馬柱情報を入力するリストを作成する。
# BASIC_INFORMATON[Race_horse_num,i] ... 基本情報
# 予想印,父、馬名、母、母の父、所属・厩舎、休養何週、馬体重、オッズ、人気順、馬齢、鞍上、斤量
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13
# Race_INFORMATON[Race_horse_num,i,j] j --- x走前のレース情報
# 1走前 日付場所、着順、レース名、グレード、芝ダ距離・タイム・馬場状態、頭数・枠・人気・鞍上・斤量、位置・上がり・馬体重、1着馬・着差
# 0 1 2 3 4 5 6 7
# :
# 5走前 日付場所、着順、レース名、グレード、芝ダ距離・タイム・馬場状態、頭数・枠・人気・鞍上・斤量、位置・上がり・馬体重、1着馬・着差
# 0 1 2 3 4 5 6 7
#2次元、3次元配列宣言
BASIC_INFORMATION = [[0 for i in range(13)] for j in range(Race_horse_num)]
Race_INFORMATION = [[[0 for i in range(7)] for j in range(5)] for k in range(Race_horse_num)]
#すべて情報には”0”を代入している。リストの最大の個所が使えるかを閣員
print(BASIC_INFORMATION[Race_horse_num-1][12],Race_INFORMATION[Race_horse_num-1][4][6])
#WEBデータをリストに詰める作業を開始。休養だった場合は次のレースへ移動する。
line_count = 0
lines_s2=lines_s1
for i in range(Race_horse_num):
for j in range(13) :
str =lines_s2[line_count]
BASIC_INFORMATION[i][j]=str
line_count +=1
for j in range(5) :
for k in range(7) :
break_flag = lines_s2[line_count].find('休養')
if break_flag != -1 : #休養だった場合、次のレースへ移動
Race_INFORMATION[i][j][k]=lines_s2[line_count]
line_count +=1
k = 8
break
else :
skip_flag_1 = lines_s2[line_count].find('芝')
skip_flag_2 = lines_s2[line_count].find('ダ')
skip_flag_3 = (k == 2)
if (skip_flag_1 != -1 or skip_flag_2 !=-1) and (skip_flag_3 != 0) :
k=k+1
line_count -=1
Race_INFORMATION[i][j][k]=lines_s2[line_count]
line_count +=1
for l in range(3):
if lines_s2[line_count].isdigit() : #半角整数はTrue
line_count +=1
else:
l = 300
break
line_count
#基本情報を必要な個所だけ抜き出す。
BASIC_INFORMATION_2 = [[0 for i in range(4)] for j in range(Race_horse_num)]
for i in range(Race_horse_num):
BASIC_INFORMATION_2[i][0]=BASIC_INFORMATION[i][2] #馬名
BASIC_INFORMATION_2[i][1]=BASIC_INFORMATION[i][6] #休養何週?
BASIC_INFORMATION_2[i][2]=BASIC_INFORMATION[i][11] #鞍上
BASIC_INFORMATION_2[i][3]=BASIC_INFORMATION[i][12] #斤量
BASIC_INFORMATION_2
#近5走の情報の表示で必要な情報をコピー
# Race_INFORMATON[Race_horse_num,i,j] j --- x走前
# 1走前 日付場所、レース名、グレード、芝ダ距離・タイム・馬場状態、頭数・枠・人気・鞍上・斤量、位置・上がり・馬体重、1着馬・着差
# 0 1 2 3 4 5 6 7 8 9 10
# [0] [1] [2] [3] [4] [5] [6] [7]
RACE_INFORMATION_2 = [[[0 for i in range(11)] for j in range(5)] for k in range(Race_horse_num)]
for i in range(Race_horse_num):
for j in range(5) :
RACE_INFORMATION_2[i][j][0]=Race_INFORMATION[i][j][0] #場所
RACE_INFORMATION_2[i][j][1]=Race_INFORMATION[i][j][1] #Race名
RACE_INFORMATION_2[i][j][2]=Race_INFORMATION[i][j][3] #芝 or ダ
RACE_INFORMATION_2[i][j][3]=Race_INFORMATION[i][j][3] #距離
RACE_INFORMATION_2[i][j][4]=Race_INFORMATION[i][j][3] #タイム
RACE_INFORMATION_2[i][j][5]=Race_INFORMATION[i][j][3] #馬場状態
RACE_INFORMATION_2[i][j][6]=Race_INFORMATION[i][j][4] #頭数
RACE_INFORMATION_2[i][j][7]=Race_INFORMATION[i][j][4] #鞍上
RACE_INFORMATION_2[i][j][8]=Race_INFORMATION[i][j][4] #斤量
RACE_INFORMATION_2[i][j][9]=Race_INFORMATION[i][j][5] #位置取り
RACE_INFORMATION_2[i][j][10]=Race_INFORMATION[i][j][5] #上がり
RACE_INFORMATION_2
#文字の場所指定をすれば、MID$のような使い方が出来る。
# RACE_INFORMATION_2[i][j][0][11]
#find関数は文字がある場所を返す。ない場合は"-1"となる。
fd = RACE_INFORMATION_2[i][j][0].find('\xa0')
print (RACE_INFORMATION_2[i][j][0][11],':',fd,':',RACE_INFORMATION_2[i][j][0][fd+1])
for i in range(Race_horse_num):
for j in range(5) :
fd = RACE_INFORMATION_2[i][j][0].find('\xa0')
if fd != -1 :
RACE_INFORMATION_2[i][j][0]=RACE_INFORMATION_2[i][j][0][fd+1] #場所
RACE_INFORMATION_2[i][j][1]=RACE_INFORMATION_2[i][j][1] #Race名
if RACE_INFORMATION_2[i][j][2] != 0 :
fd = RACE_INFORMATION_2[i][j][2].find('芝')
if fd != -1 :
RACE_INFORMATION_2[i][j][2]="芝" #芝 or ダ
RACE_INFORMATION_2[i][j][3]=RACE_INFORMATION_2[i][j][3][fd+1:fd+5] #距離
fd = RACE_INFORMATION_2[i][j][4].find(':')
if fd != -1 :
RACE_INFORMATION_2[i][j][4]=RACE_INFORMATION_2[i][j][4][fd-1:fd+5] #タイム
length =len(RACE_INFORMATION_2[i][j][5])
RACE_INFORMATION_2[i][j][5]=RACE_INFORMATION_2[i][j][5][length-1]
fd = RACE_INFORMATION_2[i][j][2].find('ダ')
if fd != -1 :
RACE_INFORMATION_2[i][j][2]="ダ" #芝 or ダ
RACE_INFORMATION_2[i][j][3]=RACE_INFORMATION_2[i][j][3][fd+1:fd+5] #距離
fd = RACE_INFORMATION_2[i][j][4].find(':')
if fd != -1 :
RACE_INFORMATION_2[i][j][4]=RACE_INFORMATION_2[i][j][4][fd-1:fd+5] #タイム
length =len(RACE_INFORMATION_2[i][j][5])
RACE_INFORMATION_2[i][j][5]=RACE_INFORMATION_2[i][j][5][length-1]
if RACE_INFORMATION_2[i][j][6] != 0 :
fd = RACE_INFORMATION_2[i][j][6].find('頭')
if fd != -1 :
RACE_INFORMATION_2[i][j][6]=RACE_INFORMATION_2[i][j][6][:fd] #頭数
fd1 = RACE_INFORMATION_2[i][j][7].find('人')
fd2 = RACE_INFORMATION_2[i][j][7].find('.')
RACE_INFORMATION_2[i][j][7]=RACE_INFORMATION_2[i][j][7][fd1+1:fd2-2] #鞍上
length =len(RACE_INFORMATION_2[i][j][8])
RACE_INFORMATION_2[i][j][8]=RACE_INFORMATION_2[i][j][8][length-4:] #斤量
if RACE_INFORMATION_2[i][j][9] != 0 :
fd = RACE_INFORMATION_2[i][j][9].find('\xa0(')
if fd != -1 :
RACE_INFORMATION_2[i][j][9]=RACE_INFORMATION_2[i][j][9][:fd] #位置取り
RACE_INFORMATION_2[i][j][10]=RACE_INFORMATION_2[i][j][10][fd+2:fd+6] #上がり
#欲しいところを取り出した情報 最初の馬の、もっとも最近のレースと、最後の馬の最古のレース情報を表示
#ずれていないか確認
print(RACE_INFORMATION_2[0][0],":",RACE_INFORMATION_2[Race_horse_num-1][4])
Python で 競馬予想 実践第12回 2020年… Dec 26, 2020
Python で 競馬予想 実践第11回 阪神JF… Dec 13, 2020
Python で 競馬予想 実践第10回 チャン… Dec 6, 2020 コメント(2)
PR
Free Space
Calendar
Comments
Freepage List