第九組組員40523119實作利用python將組別原始資料解析、分組、整理與排列,程式碼如下:

keyword:Python parse, Python 字串處理

  • 版本1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
with open("2a.txt") as fh:
data = fh.readlines() #逐行讀入
data= [w.replace('\n', '') for w in data] #將跳行字符取代為空白

team_list = list() #建立空list

for i in range(len(data)):
team = data[i].split() #先將每一排切出來
for g in range(0,len(team),3):
b = team[g:g+3] #每三位學員為一組
team_list.append(b) #加入先前建立的空list

for num in range(len(team_list)): #將資料填上組別編號
print('第' + str(num+1) + '組:' + str(team_list[num]))

Output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
第1組:['40523115', '40523108', '40523116']
第2組:['40523144', '40523111', '40523141']
第3組:['40523104', '40523102', '40523123']
第4組:['40523137', '40523117', '40523135']
第5組:['40523147', '40523146', '40523145']
第6組:['40523122', '40523136', '40523132']
第7組:['40523127', '40523126', '40523125']
第8組:['40523124', '40523118', '40523131']
第9組:['40523121', '40523120', '40523119']
第10組:['40523105', '40523106', '40523107']
第11組:['40523143', '40523128', '40523129']
第12組:['40523130', '40523139', '40523133']
第13組:['40523142', '40523148', '40523140']
第14組:['40523113', '40523138', '40523134']
  • 版本2:

利用套件 re 來快速解析原始資料,減去對系統字符處理的手續,進而直接擷取理想的資料組態。

1
2
3
4
5
6
7
8
9
10
11
import re
with open("2a.txt") as fh:
data = fh.readlines() #逐行讀入
data = [(re.findall('405\d\d\d\d\d', data[int(i)])) for i in range(len(data))]
num = 0
for i in range(len(data)):
team = data[i]
for g in range(len(team)):
if g%3 == 0:
num += 1
print('第' + str(num) +'組:' + str(team[g:g+3]))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
第1組:['40523115', '40523108', '40523116']
第2組:['40523144', '40523111', '40523141']
第3組:['40523104', '40523102', '40523123']
第4組:['40523137', '40523117', '40523135']
第5組:['40523147', '40523146', '40523145']
第6組:['40523122', '40523136', '40523132']
第7組:['40523127', '40523126', '40523125']
第8組:['40523124', '40523118', '40523131']
第9組:['40523121', '40523120', '40523119']
第10組:['40523105', '40523106', '40523107']
第11組:['40523143', '40523128', '40523129']
第12組:['40523130', '40523139', '40523133']
第13組:['40523142', '40523148', '40523140']
第14組:['40523113', '40523138', '40523134']