python - 从python中的另一个列表中获取列表的对应元素时使用map函数获取错误列表
问题描述
我有两个清单:
a = [1,2,3,4]
b = [True,False,True,False]
我想得到a
与True
in对应的元素b
,不要使用for
循环。我用map
函数来解决它,但它出错了:
def f(x,y):
if x:
return y
s = list(map(f,b,a))
s
是[1, None, 3, None]
,而且我不想要None
,我该怎么办?
解决方案
使用compress
:
from itertools import compress
a = [1,2,3,4]
b = [True,False,True,False]
s = list(compress(a, b))
输出:
[1, 3]
推荐阅读
- angular - 获取 Angular 自动完成值
- ios - UIImage 和 prepareforSegue 无法传递图像
- http - Axios 发送错误的 cookie (CORS)
- google-bigquery - Airflow BigQueryOperator:如何将查询结果保存在分区表中?
- unity3d - unity mesh 第一次渲染时为什么会增加内存?
- android - OnDataChange 方法被调用并报告空对象
- node.js - 在本地运行时,通过 docker-compose 的节点 ftpd 和 pasv 将无法连接
- java - Spring Data JPA Rest (JpaRepository) 上的安全问题
- postgresql - Docker(撰写):使 knex 与 postgres 一起工作
- python-3.x - 从 OptionMenu 执行命令