Python – 列表间的不相交字符串


如果需要在不同列表中找出不相交字符串,则定义一个方法,该方法接受两个参数,并使用带有“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("The first list is : ")
print(my_list_1)
print("The second list is :")
print(my_list_2)

my_result = list(determine_disjoint_pairs([my_list_1, my_list_2]))

print("The result is :")
print(my_result)

输出

The first list is :
['python', 'is', 'fun']
The second list is :
['its', 'awesome', 'learning']
The result is :
[('fun', 'its'), ('fun', 'awesome')]

说明

  • 定义名为“determine_disjoint_pairs”的方法,该方法接受两个参数。

  • 如果第一个参数不为真,以及带有两个参数的“reduce”和“lambda”方法不为真,则使用 yield 运算符来确定结果,其也会转换成一个元组。

  • 否则,使用 yield 运算符结合列表解析通过使用不同的一系列参数再次调用该方法。

  • 在该方法外,定义两个字符串列表并在控制台上显示它们。

  • 通过传递这两个列表来调用该方法。

  • 将其转换成列表并赋值给变量。

  • 将此变量显示为控制台上的输出。

更新日期:2021 年 9 月 6 日

171 次浏览

开启您的 职业生涯

完成课程后获得认证

获取入门
广告