我有两张单子:
a= [4,5,4,0,1,0]
b= [0,4,4,0,0,0]
如何根据两个列表中的索引生成值大于零的子列表。例如
sub_list_a =[5,4]
sub_list_b = [4,4]
下面的代码生成子列表。我想知道是否有一个优雅的方法来做到这一点。。你知道吗
idxa = [i for i, e in enumerate(a) if e != 0]
idxb = [i for i, e in enumerate(b) if e != 0]
inter = list(set(idxa) & set(idxb))
from operator import itemgetter
print ('sub_list_a',itemgetter(*inter)(a))
print ('sub_list_a',itemgetter(*inter)(b))
您可以^{} 这两个列表并检查这两个元素是否都是
> 0
,然后再次zip
将成对的元素分配给这两个子列表如果数字不能} 乘^{} :
< 0
,那么您也可以^{请注意,子列表是元组;如果需要列表,^{} 到
list
:当然,您也可以在一行中完成以上所有操作:
列表理解:
如果您更喜欢for循环,假设列表长度相同:
相关问题 更多 >
编程相关推荐