解释代码 if re.findall(''\d+'',i): core_list.append(int(i)) else: temp = core_list.copy()
时间: 2024-05-29 12:15:38 浏览: 8
这段代码的功能是将字符串列表 `i` 中的所有数字字符串转换为整数,并添加到 `core_list` 列表中。如果 `i` 列表中的某个元素不是数字字符串,则将 `core_list` 列表中的所有元素复制到 `temp` 列表中。
具体的实现是通过 `re` 模块的 `findall` 函数来查找 `i` 中的数字字符串,并使用 `int` 函数将其转换为整数类型,然后通过 `append` 函数添加到 `core_list` 列表中。如果 `i` 中的元素不是数字字符串,则将 `core_list` 列表中的所有元素复制到 `temp` 列表中,以便后续处理。
相关问题
解释代码 if re.findall(''\d+'',i): core_list.append(int(i))
这段代码的功能是从一个列表中筛选出所有包含数字的元素,并将这些元素转换成整数类型后添加到一个新的列表 `core_list` 中。
具体来说,`re.findall('\d+', i)` 会通过正则表达式 `\d+` 匹配字符串 `i` 中的所有数字,并以列表形式返回。如果返回的列表不为空(即这个元素包含数字),则使用 `int(i)` 将这个元素转换成整数类型,并添加到 `core_list` 列表中。最后返回 `core_list` 列表。
翻译代码:#计算代价 def calTravelCost(route_list,model): timetable_list=[] distance_of_routes=0 time_of_routes=0 obj=0 for route in route_list: timetable=[] vehicle=model.vehicle_dict[route[0]] travel_distance=0 travel_time=0 v_type = route[0] free_speed=vehicle.free_speed fixed_cost=vehicle.fixed_cost variable_cost=vehicle.variable_cost for i in range(len(route)): if i == 0: next_node_id=route[i+1] travel_time_between_nodes=model.distance_matrix[v_type,next_node_id]/free_speed departure=max(0,model.demand_dict[next_node_id].start_time-travel_time_between_nodes) timetable.append((int(departure),int(departure))) elif 1<= i <= len(route)-2: last_node_id=route[i-1] current_node_id=route[i] current_node = model.demand_dict[current_node_id] travel_time_between_nodes=model.distance_matrix[last_node_id,current_node_id]/free_speed arrival=max(timetable[-1][1]+travel_time_between_nodes,current_node.start_time) departure=arrival+current_node.service_time timetable.append((int(arrival),int(departure))) travel_distance += model.distance_matrix[last_node_id, current_node_id] travel_time += model.distance_matrix[last_node_id, current_node_id]/free_speed+\ + max(current_node.start_time - arrival, 0) else: last_node_id = route[i - 1] travel_time_between_nodes = model.distance_matrix[last_node_id,v_type]/free_speed departure = timetable[-1][1]+travel_time_between_nodes timetable.append((int(departure),int(departure))) travel_distance += model.distance_matrix[last_node_id,v_type] travel_time += model.distance_matrix[last_node_id,v_type]/free_speed distance_of_routes+=travel_distance time_of_routes+=travel_time if model.opt_type==0: obj+=fixed_cost+travel_distance*variable_cost else: obj += fixed_cost + travel_time *variable_cost timetable_list.append(timetable) return timetable_list,time_of_routes,distance_of_routes,obj
# Calculate the cost
def calTravelCost(route_list, model):
timetable_list = []
distance_of_routes = 0
time_of_routes = 0
obj = 0
# Loop through each route
for route in route_list:
timetable = []
vehicle = model.vehicle_dict[route[0]]
travel_distance = 0
travel_time = 0
v_type = route[0]
free_speed = vehicle.free_speed
fixed_cost = vehicle.fixed_cost
variable_cost = vehicle.variable_cost
# Loop through each node in the route
for i in range(len(route)):
if i == 0:
next_node_id = route[i+1]
travel_time_between_nodes = model.distance_matrix[v_type, next_node_id] / free_speed
departure = max(0, model.demand_dict[next_node_id].start_time - travel_time_between_nodes)
timetable.append((int(departure), int(departure)))
elif 1 <= i <= len(route)-2:
last_node_id = route[i-1]
current_node_id = route[i]
current_node = model.demand_dict[current_node_id]
travel_time_between_nodes = model.distance_matrix[last_node_id, current_node_id] / free_speed
arrival = max(timetable[-1][1] + travel_time_between_nodes, current_node.start_time)
departure = arrival + current_node.service_time
timetable.append((int(arrival), int(departure)))
travel_distance += model.distance_matrix[last_node_id, current_node_id]
travel_time += model.distance_matrix[last_node_id, current_node_id] / free_speed + \
max(current_node.start_time - arrival, 0)
else:
last_node_id = route[i - 1]
travel_time_between_nodes = model.distance_matrix[last_node_id, v_type] / free_speed
departure = timetable[-1][1] + travel_time_between_nodes
timetable.append((int(departure), int(departure)))
travel_distance += model.distance_matrix[last_node_id, v_type]
travel_time += model.distance_matrix[last_node_id, v_type] / free_speed
# Calculate the cost for this route
distance_of_routes += travel_distance
time_of_routes += travel_time
if model.opt_type == 0:
obj += fixed_cost + travel_distance * variable_cost
else:
obj += fixed_cost + travel_time * variable_cost
timetable_list.append(timetable)
return timetable_list, time_of_routes, distance_of_routes, obj
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)