org_id_dict.values() 详解
时间: 2024-05-21 22:16:12 浏览: 15
`org_id_dict` 是一个字典(dictionary),它的键(key)是组织名(organization name),值(value)是该组织的 ID(identifier)。当调用 `org_id_dict.values()` 时,返回该字典中所有值的迭代器(iterator),即返回所有组织的 ID。可以通过将其转换为列表(list)或元组(tuple)来获取所有值。例如,使用列表转换可以写成 `list(org_id_dict.values())`,使用元组转换可以写成 `tuple(org_id_dict.values())`。这个函数在需要获取字典中所有值时非常有用。
相关问题
修改 错误 SELECT pr.PRODUCT_ID, pr.PRODUCT_NAME, pr.ORIGINAL_PRICE, pr.ONLINE_PRICE, pr.COMMISSION_PERCENT, pr.TOTAL_SALES, pr.SHOP, dict.label AS COMMERCE_TYPE_LABEL, pr.SERVICE_RATE, ord.ORDER_ID, date.label AS SEND_FLG_LABEL, pro.CONNECT_BUSINESS_FLG, address.APPLY_REMARK, address.CREATE_TIME, users.nicknameFROM t_product AS prLEFT JOIN t_order AS ord ON ord.PRODUCT_ID = pr.IDLEFT JOIN ( SELECT label, `value` FROM system_dict_data WHERE dict_type = 'COMMERCE_TYPE' ) AS dict ON dict.`value` = pr.COMMERCE_TYPE LEFT JOIN ( SELECT label, `value` FROM system_dict_data WHERE dict_type = 'trade_after_sample_type' ) AS date ON date.`value` = ord.SEND_FLGLEFT JOIN t_apply_pro AS pro ON pro.PRODUCT_ID = pr.IDLEFT JOIN t_apply_pro_user_address AS address ON address.t_apply_pro_id = pro.IDLEFT JOIN system_users AS users ON users.id = pro.OPERATE_USER_ID WHERE users.id = '1'
以下是修改后的SQL语句,主要是为了使语句更加易读和易懂:
```
SELECT
pr.PRODUCT_ID,
pr.PRODUCT_NAME,
pr.ORIGINAL_PRICE,
pr.ONLINE_PRICE,
pr.COMMISSION_PERCENT,
pr.TOTAL_SALES,
pr.SHOP,
dict.label AS COMMERCE_TYPE_LABEL,
pr.SERVICE_RATE,
ord.ORDER_ID,
date.label AS SEND_FLG_LABEL,
pro.CONNECT_BUSINESS_FLG,
address.APPLY_REMARK,
address.CREATE_TIME,
users.nickname
FROM
t_product pr
LEFT JOIN t_order ord ON ord.PRODUCT_ID = pr.ID
LEFT JOIN (
SELECT label, `value`
FROM system_dict_data
WHERE dict_type = 'COMMERCE_TYPE'
) AS dict ON dict.`value` = pr.COMMERCE_TYPE
LEFT JOIN (
SELECT label, `value`
FROM system_dict_data
WHERE dict_type = 'trade_after_sample_type'
) AS date ON date.`value` = ord.SEND_FLG
LEFT JOIN t_apply_pro pro ON pro.PRODUCT_ID = pr.ID
LEFT JOIN t_apply_pro_user_address address ON address.t_apply_pro_id = pro.ID
LEFT JOIN system_users users ON users.id = pro.OPERATE_USER_ID
WHERE
users.id = '1'
```
修改后的SQL语句对语句进行了格式化和缩进,使得语句更加易读和易懂。同时,还对表名和字段名进行了简化,以减少语句的长度,使其更加简洁。
优化这段代码:def calDistanceMatrix(model): for i in range(len(model.demand_id_list)): from_node_id = model.demand_id_list[i] for j in range(i + 1, len(model.demand_id_list)): to_node_id = model.demand_id_list[j] dist = math.sqrt((model.demand_dict[from_node_id].x_coord - model.demand_dict[to_node_id].x_coord) ** 2 + (model.demand_dict[from_node_id].y_coord - model.demand_dict[to_node_id].y_coord) ** 2) model.distance_matrix[from_node_id, to_node_id] = dist model.distance_matrix[to_node_id, from_node_id] = dist for _, vehicle in model.vehicle_dict.items(): dist = math.sqrt((model.demand_dict[from_node_id].x_coord - vehicle.x_coord) ** 2 + (model.demand_dict[from_node_id].y_coord - vehicle.y_coord) ** 2) model.distance_matrix[from_node_id, vehicle.type] = dist model.distance_matrix[vehicle.type, from_node_id] = dist
可以优化的地方有两个:
1. 可以使用numpy中的ndarray来计算两点之间的距离,这样可以避免使用循环,提高计算速度。
2. 在计算距离矩阵之前,可以将所有点的坐标都存储到一个矩阵中,这样可以避免在循环中重复计算坐标。
优化后的代码如下所示:
```python
import numpy as np
def calDistanceMatrix(model):
coord_matrix = np.array([(demand.x_coord, demand.y_coord) for demand in model.demand_dict.values()] +
[(vehicle.x_coord, vehicle.y_coord) for vehicle in model.vehicle_dict.values()])
for i in range(len(model.demand_id_list)):
from_node_id = model.demand_id_list[i]
from_coord = coord_matrix[i]
for j in range(i + 1, len(model.demand_id_list)):
to_node_id = model.demand_id_list[j]
to_coord = coord_matrix[j]
dist = np.sqrt(np.sum((from_coord - to_coord) ** 2))
model.distance_matrix[from_node_id, to_node_id] = dist
model.distance_matrix[to_node_id, from_node_id] = dist
for _, vehicle in model.vehicle_dict.items():
vehicle_coord = coord_matrix[len(model.demand_dict) + vehicle.type]
dist = np.sqrt(np.sum((from_coord - vehicle_coord) ** 2))
model.distance_matrix[from_node_id, vehicle.type] = dist
model.distance_matrix[vehicle.type, from_node_id] = dist
```
这样,代码的计算速度可以得到一定的提升。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)