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 次瀏覽

開啟您的 職業生涯

完成課程後獲得認證

獲取入門
廣告
© . All rights reserved.