実現したいこと
ナンバー(必ず数字)と商品番号(必ず先頭一桁はアルファベット)が混ざっているレコードを、
ナンバーと商品番号に分割したいです。
1DF→1/DF
2→2
10F0→10/F0
300AAA→300/AAA
1100A0→1100→A0
発生している問題・分からないこと
自分の書いているプログラムだと、ナンバーの桁数が増えるたびに、
条件分を追加しないといけないのと、
商品番号が始まる桁数がバラバラのため、下記方法を拡張しようとするとエラーになります。
もう少しスマートな方法はないでしょうか。
該当のソースコード
python
1list = ['1DF', '2', '10F0','300AAA','1100A0'] 2no=[] 3syohin=[] 4for s in range(len(list)): 5 if len(list[s])== 0: 6 no.append("") 7 for t in range(len(list[s])): 8 if t==0: 9 if list[s][t].isnumeric() == True: 10 no.append(list[s][t]) 11 if t==1: 12 if list[s][t].isnumeric() == True: 13 no[s]+=list[s][t] 14 elif list[s][t].isalpha() == True: 15 syohin.append(list[s][t]) 16 if t==2: 17 if list[s][t].isnumeric() == True: 18 no[s]+=list[s][t] 19 elif list[s][t].isalpha() == True: 20 syohin.append(list[s][t]) 21 22print(no) 23print(syohin) 24 25['1', '2', '10', '300', '110'] 26['D', 'F', 'F']
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
正規表現を使う方法があるのかなと思いましたが、実現方法が具体的にはわかりませんでした。
補足
特になし
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。