2024-06-02 04:47:28 发布
网友
使用以下语法:
from operator import eq a = ['a','b', 'c'] b = ['a', 'b'] list(map(eq, a, b))
我得到:
# [True, True]
如何为缺少的'c'元素获取T/F结果:
'c'
T/F
# [True, True, False]
以下是不使用itertools的版本:
itertools
def tmp_func(a,b): i = 0 m = len(max(a,b)) len_diff = len(a) - len(b) if(len_diff < 0): a.extend(abs(len_diff)*['']) elif (len_diff > 0): b.extend(abs(len_diff)*['']) while i < m: yield (a[i], b[i]) i=i+1 a = ['a','b', 'c'] b = ['a', 'b'] list(map(lambda x: x[0]==x[1], tmp_func(a,b)))
输出:
[True, True, False]
使用starmap和zip_longestfrom itertools中的fillvalue作为zip_longest中的fillvalue来填充缺少的值位置:
starmap
zip_longest
fillvalue
In [34]: from itertools import zip_longest, starmap In [35]: list(starmap(eq, zip_longest(a, b, fillvalue=None))) Out[35]: [True, True, False]
以下是不使用
itertools
的版本:输出:
使用
starmap
和zip_longest
fromitertools
中的fillvalue
作为zip_longest
中的fillvalue
来填充缺少的值位置:相关问题 更多 >
编程相关推荐