You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对字符串列表与布尔值列表执行元素级“乘法”操作?

实现字符串列表与布尔值列表的元素级匹配替换

方法1:列表推导式(最简洁直观)

直接通过zip将两个列表的对应元素配对,再用条件判断生成结果列表:

list_1 = ['A','B','C','D']
list_2 = [True,False,True,False]
list_output = [s if b else '' for s, b in zip(list_1, list_2)]
# 结果:['A', '', 'C', '']

zip(list_1, list_2)会把两个列表的对应元素打包成元组,列表推导式遍历每个元组,根据布尔值b决定保留原字符串s还是替换为空串。

方法2:使用map+lambda

如果偏好函数式写法,也可以用map配合匿名函数实现:

list_output = list(map(lambda s, b: s if b else '', list_1, list_2))

map会对list_1和list_2的对应元素逐一应用lambda函数,最后通过list()将迭代器转为列表。

处理列表长度不一致的情况

如果两个列表长度不同,zip会以较短的列表为准截断结果。要是需要保留较长列表的剩余元素,可以用itertools.zip_longest:

from itertools import zip_longest
# 超出list_2长度的元素默认保留原字符串(fillvalue=True)
list_output = [s if b else '' for s, b in zip_longest(list_1, list_2, fillvalue=True)]
# 若想把超出部分替换为空串,将fillvalue设为False即可

内容的提问来源于stack exchange,提问作者Solomon123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 16:19:55