請教各位,
我有一個需求,想要找到表中的配速資料,哪些是大于10秒的。 配速資料的格式為,5'22"
比如下面的兩條資料,最后一列是配速。想找出其中大于8'的記錄。請各位指點。
李秀錦 2019/11/17 2019/11/17 16:45 4.16 7'10"
陳燕茹 2019/2/26 2019/2/26 18:04 5.6 8'34"
謝謝大家。
uj5u.com熱心網友回復:
s=['''李秀錦 2019/11/17 2019/11/17 16:45 4.16 7'10"''',
'''陳燕茹 2019/2/26 2019/2/26 18:04 5.6 8'34"''']
print(s)
for s1 in s:
if int(s1.split(" ")[-1].split("'")[0])>=8 :
print(s1)
uj5u.com熱心網友回復:
if __name__ == "__main__":
s=['''李秀錦 2019/11/17 2019/11/17 16:45 4.16 7'10"''',
'''陳燕茹 2019/2/26 2019/2/26 18:04 5.6 8'34"''']
print(s)
for s1 in s:
if int(s1[s1.rindex(' '):s1.rindex('\'')])>=8:
print(s1)
uj5u.com熱心網友回復:
這個需求描述有點模糊,只好假設是大于8分10秒的,原始資料是多行的,最后結果去掉"\n"即可(此步略),其他資料類似。一開始考慮應該是分隔符比較快速簡單,正則稍復雜點,加上校驗不止這點代碼。import re
pattern="([^/: 0-9]*)[ ]([^ ]*)[ ]([^ ]*)[ ]([^ ]*)[ ]([^ ]*)[ ]([0-9]*)[']([0-9]*)[\"]"
datas=['''李秀錦 2019/11/17 2019/11/17 16:45 4.16 7'10"
陳燕茹 2019/2/26 2019/2/26 18:04 5.6 8'34"''']
counter=0
for data in datas:
results=re.findall(pattern, data, re.M|re.S|re.I)
if results is not None and len(results)>0:
for result in results:
counter=counter+1
minutes=int(result[-2])
seconds=int(result[-1])
if minutes>=8 and seconds>=10:
print("Records of time>=8'10\": "+result[0]+": "+result[-2]+" minutes "+result[-1]+" seconds")
print(str(counter)+". "+str(result))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/54209.html
