所以我寫了這段代碼,它回傳總時間parse_time和總距離parse_int,這是我的代碼。
def getDigits(s):
answer = []
for char in s.split(";"):
k = ""
for split_s in char:
if split_s.isdigit():
k = split_s
if k:
answer.append(k)
return answer
def parse_time(s):
l = getDigits(s)
r = (int(l[0])//100)*60
t = ((int(l[0])//100)*100)
s = int(l[0])-t
return r s
print(parse_time(s='cycling;time:1,49;distance:2'))
def parse_dist(s):
l = getDigits(s)
return l[1] 'km'
print(parse_dist(s='cycling;time:1,49;distance:2'))
def jogging_average(activities: list[str]):
現在我只想知道我如何編程函式jogging_average(activities: list[str])來回傳每個有慢跑的字串的parse_dist和parse_time。我怎樣才能做到這一點??
順便說一句,所有輸入都將來自activities: list,即
activities = [
"cycling;time:1,49;distance:2",
"jogging;time:40,11;distance:6",
"swimming;time:1,49;distance:1.2",
"jogging;time:36,25;distance:5.3",
"hiking;time:106,01;distance:8.29"
]
uj5u.com熱心網友回復:
會為你回圈排序嗎?
for activity in activities:
if "jogging" in activity:
print(parse_dist(activity))
print(parse_time(activity))
uj5u.com熱心網友回復:
使用實際的資料結構很容易。看Activity
from typing import NamedTuple,List
from statistics import mean
class Activity(NamedTuple):
type: str
time: int
distance: float
def get_digits(s):
answer = []
for char in s.split(";"):
k = ""
for split_s in char:
if split_s.isdigit():
k = split_s
if k:
answer.append(k)
return answer
def parse_time(l):
l = get_digits(l)
r = (int(l[0])//100)*60
t = ((int(l[0])//100)*100)
s = int(l[0])-t
return r s
def parse(test:str) -> Activity:
fields = test.split(';')
type = fields[0]
time = parse_time(fields[1][fields[1].find(':') 1:])
distance = float(fields[2][fields[2].find(':') 1:])
return Activity(type,time,distance)
def get_avg_time(lst:List[Activity],activity_type:str) -> float:
return mean(act.time for act in lst if act.type == activity_type)
activities = [
"cycling;time:1,49;distance:2",
"jogging;time:40,11;distance:6",
"swimming;time:1,49;distance:1.2",
"jogging;time:36,25;distance:5.3",
"hiking;time:106,01;distance:8.29"
]
activities: List[Activity] = [parse(act) for act in activities]
activity_type = 'jogging'
avg_time: float = get_avg_time(activities,activity_type)
print(f'Avg activity time of {activity_type} is {avg_time}')
輸出
Avg activity time of jogging is 2298
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/350203.html
