python返回数组中'id'列为-1的行对应的'tras'列的值
时间: 2023-12-25 11:05:32 浏览: 72
假设数组为一个列表列表,可以使用以下代码实现:
```python
result = [row['tras'] for row in list_of_dicts if row['id'] == -1]
```
其中,`list_of_dicts` 为包含字典的列表,每个字典代表一行数据,`row['id']` 和 `row['tras']` 分别代表字典中的 'id' 和 'tras' 列。代码中,使用了列表推导式,通过筛选 'id' 列为 -1 的行,并返回对应的 'tras' 列的值。最终结果将存储在 `result` 变量中。
相关问题
SELECT A.THREEBONAME 三级预算中心, A.PRODUCTNAME2 产品大类, A.PRODUCTCODE4 物料编码, A.PRODUCTNAME4 物料名称, A.天数 活动天数, case when A.天数=0 THEN A.差值 ELSE A.天数 END AS 已持续天数, sum(B.POS_QTY_PCS) 活动数量和, sum(B.POS_QTY_PKG) 活动箱数和, sum(B.POS_AMT) 活动金额和 from (SELECT A.ONEBONAME, A.TWOBONAME, A.THREEBONAME, A.PRODUCTNAME2, A.PRODUCTCODE4, A.PRODUCTNAME4, DATE_FORMAT(A.ACTIVITYSTARTDATE,'%Y%m%d') STARTDATE, DATE_FORMAT(A.ACTIVITYENDDATE,'%Y%m%d') ENDDATE, DATE_FORMAT(DATE_SUB(A.ACTIVITYSTARTDATE, INTERVAL 91 DAY),'%Y%m%d') 未促销开始日期, A.ACTIVITYENDDATE-A.ACTIVITYSTARTDATE+1 天数, to_days(now()) - to_days(A.ACTIVITYSTARTDATE)+1 差值 FROM ka_wantwant_prod.VACTIVITYDETAIL A ) A LEFT JOIN (select A.KA_SYSTEM_CODE, B.BW_SYSTEM_NAME, A.SALES_COM_ID_WH, B.KA_SALES_COM_ID_WH_NAME, B.TPM_THREEBONAME, A.PROD_MATL_ID, A.POS_DATE, A.POS_QTY_PCS, A.POS_QTY_PKG, A.POS_AMT FROM ka_wantwant_prod.tras_ka_pos_history A left join (select distinct C.KA_SALES_COM_ID_WH,C.KA_SALES_COM_ID_WH_NAME,C.BW_SYSTEM_CODE,C.BW_SYSTEM_NAME,C.TPM_THREEBONAME from ka_wantwant_prod.ka_pos_tpm_config C) B on A.KA_SYSTEM_CODE=B.BW_SYSTEM_CODE AND A.SALES_COM_ID_WH=B.KA_SALES_COM_ID_WH ) B ON A.PRODUCTCODE4=B.PROD_MATL_ID AND A.THREEBONAME=B.TPM_THREEBONAME AND B.POS_DATE<=A.ENDDATE AND B.POS_DATE>=A.STARTDATE where DATE_FORMAT(A.STARTDATE,'%Y%m')='202305' and B.POS_QTY_PCS is not null GROUP BY A.THREEBONAME, A.PRODUCTNAME2, A.PRODUCTCODE4, A.PRODUCTNAME4, A.天数, 已持续天数
这段 SQL 语句的作用是查询某个时间段内的营销活动和销售数据,并对其进行汇总。其中包括:
- 三级预算中心、产品大类、物料编码、物料名称、活动天数、已持续天数、活动数量和、活动箱数和、活动金额和等字段;
- 使用子查询获取营销活动的相关信息,并计算出活动天数和已持续天数;
- 使用左连接关联销售数据,对数据进行汇总,同时过滤掉 POS_QTY_PCS 为空的记录;
- 使用 GROUP BY 对结果进行分组,以便进行汇总计算。
需要注意的是,这段 SQL 语句在执行时可能存在性能问题,可以考虑进行优化。具体优化方法可以根据实际情况进行调整,例如:
- 创建合适的索引,以加快查询速度;
- 避免在 WHERE 子句中使用函数,以避免索引失效;
- 尽可能使用 INNER JOIN 而不是 LEFT JOIN;
- 避免在 GROUP BY 子句中使用过多的字段,以提高查询效率;
- 避免使用 SELECT *,只选择需要的列等。
matlab使用几何变换将图像进行缩放init=imread('lena.bmp');%读取图像 [R, C]= size(init); %获取图像大小 X = 2; % X轴缩放量 Y = 2;% Y轴缩放量 res = zeros(X * R, Y * C);%构造结果矩阵。每个像素点默认初始化为0 (黑色) tras = [X 0 0;0 Y 0;0 0 1]; %缩放的变换矩阵 for i= 1 : X * R for j= 1:Y * C temp=[i;j;1]; temp= tras * temp; %矩阵乘法 x = uint8(temp(1, 1)); y = uint8(temp(2, 1));%0变换后的位置判断是否越界 if(x<=R)&&(y<=C)&&(x>=1)&&(y>=1) res(i, j)=init(x,y); end end end subplot(121); imshow(uint8(init)); title('原图') subplot(122); imshow (uint8(res)); title('缩放图像');
这段代码的作用是将lena.bmp图像进行2倍缩放。缩放的过程采用的是几何变换的方法,即通过对原图像的每个像素点进行坐标变换,得到缩放后的像素点坐标,然后根据坐标在结果矩阵中进行插值。
具体步骤如下:
1. 读取lena.bmp图像并获取图像大小。
2. 构造结果矩阵,大小为原图像的2倍。
3. 构造缩放变换矩阵tras,其中X和Y分别为X轴和Y轴的缩放量。
4. 对结果矩阵中的每个像素点进行坐标变换。
5. 判断变换后的像素点坐标是否越界(即是否在原图像范围内)。
6. 如果没有越界,则在结果矩阵中插入原图像中对应的像素值。
最后,通过subplot函数将原图像和缩放后的图像显示在同一张图像中。
阅读全文