前提・実現したいこと
X_list=[//******]
↓
X_list=[6,3,9]
「*」の数を「/」で区切って数字に変換したいです。
発生している問題・エラーメッセージ
質問したいところは、30行目あたりの下からなんですが、 それまでの状況で、 X=20 Y=40 X_list=[******/***/*********] Y_list=[*****/**********/****************/******] array=[[1,34],[1,17],[0,7],[1,6],[0,11]] が作られています。 困っているところが、 X_listの中にある「*」の数を「/」で区切って数字にして、[6,3,9]という風にしたいんですけど、 空のリストにappendして作ろうと思って作ってみると、[6,3]で止まってしまい、「9」が入らないです。 これは、for文でミスをしてしまっているんでしょうか?
該当のソースコード
Python
1import sys 2 3list_0 = [] 4list_1 = [] 5list_result_0 = [] 6list_result_1 = [] 7array=[] 8for line in sys.stdin.readlines(): 9 array.append(list(map(int, line.rstrip().split(" ")))) 10 11X = array[0][0] 12Y = array[0][1] 13 14X_list = "*"*X 15Y_list = "*"*Y 16del array[0] 17for i in range(len(array)): 18 if array[i][0] == 0: 19 list_0.append(array[i][1]) 20 elif array[i][0] == 1: 21 list_1.append(array[i][1]) 22 23for j in range(len(list_0)): 24 X_list = X_list[:list_0[j]-1] + "/" + X_list[list_0[j]:] 25 26for k in range(len(list_1)): 27 Y_list = Y_list[:list_1[k]-1] + "/" + Y_list[list_1[k]:] 28 29#ーーーここから下が質問のところですーーー 30list_temp = [] 31kaisu = 0 32result = 0 33for n in X_list: 34 if n == "*": 35 kaisu+=1 36 result+=1 37 elif n == "/" or kaisu == len(X_list): 38 list_temp.append(result) 39 kaisu+=1 40 result=0 41print(list_temp)
試したこと
while文でやってみたり、elifのところが違うのかもと思い色々頑張ったんですが、出来ませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/09 16:00