当需要在列表中查找不相交的字符串时,定义了一个方法,该方法接受两个参数,并使用带有“if”条件的 lambda 和 reduce 方法来确定结果。
以下是相同的演示 -
from functools import reduce def determine_disjoint_pairs(disjoint_data, my_result=[]): if not disjoint_data and not reduce(lambda a, b: set(a) & set(b), my_result): yield tuple(my_result) elif disjoint_data: yield [idx for k in disjoint_data[0] for idx in determine_disjoint_pairs(disjoint_data[1:], my_result + [k])] my_list_1 = ["python", "is", "fun"] my_list_2 = ["its", "awesome", "learning"] print("第一个列表是: ") print(my_list_1) print("第二个名单是:") print(my_list_2) my_result = list(determine_disjoint_pairs([my_list_1, my_list_2])) print("结果是:") print(my_result)输出结果
第一个列表是: ['python', 'is', 'fun'] 第二个名单是: ['its', 'awesome', 'learning'] 结果是: [('fun', 'its'), ('fun', 'awesome')]
定义了一个名为“determine_disjoint_pairs”的方法,它采用两个参数。
如果第一个参数不为真,并且与两个参数一起使用的 'reduce' 和 'lambda' 方法不为真,则使用 yield 运算符来确定结果,该结果也被转换为元组。
否则,通过使用不同的参数集再次调用该方法,将使用 yield 运算符和列表推导式。
在该方法之外,定义了两个字符串列表并显示在控制台上。
通过传递这两个列表来调用该方法。
它被转换为一个列表并分配给一个变量。
此变量在控制台上显示为输出。