Python中两个list操作问题
listA = [0,1,0,1....0,1] listB = ['A','B','C'....'An','Bn'] 结果是 finallist = ['B','D'...'Bn'] 就是根据 listA 为 1 的值 对应选出 listB 的值,不用 for 循环,怎么写效率最高
Python中两个list操作问题
7 回复
finallist = listB[1::2]
思考了一下,觉得还是写 for 循环靠谱。。。
final_list = [a[i] for i in range(min(len(a), len(b))) if b[i] == 1]
a,b 数组写反了 T_T
试试
map(lambda y: y[1], filter(lambda x: x[0] == 1, zip(a, b)))
上面那个 == 1 也可以去掉,主要是提醒你,如果想要 0 丢应的,就把 1 换成 0
当然,如果你的需求只是跳位取值的话,用 list 自带的步长是最简洁的
# 取奇数位
b[1::2]
# 取偶数位
b[0::2]

