Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python – แยกสตริงข้ามรายการ


เมื่อจำเป็นต้องค้นหาสตริงที่ไม่เกี่ยวข้องกันในรายการ จะมีการกำหนดเมธอดที่ใช้พารามิเตอร์สองตัว และใช้แลมบ์ดาและลดเมธอดด้วยเงื่อนไข 'if' เพื่อกำหนดผลลัพธ์

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -

ตัวอย่าง

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' ถูกกำหนดโดยใช้พารามิเตอร์สองตัว

  • หากพารามิเตอร์แรกไม่เป็นความจริง และวิธีการ "ลด" และ "แลมบ์ดา" ที่ใช้กับพารามิเตอร์สองตัวไม่เป็นความจริง ตัวดำเนินการผลตอบแทนจะถูกนำมาใช้เพื่อกำหนดผลลัพธ์ ซึ่งจะถูกแปลงเป็นทูเพิลด้วย

  • มิฉะนั้น ตัวดำเนินการผลตอบแทนพร้อมกับความเข้าใจรายการจะถูกใช้โดยการเรียกเมธอดอีกครั้งด้วยชุดพารามิเตอร์อื่น

  • นอกเมธอด จะมีการกำหนดรายการสตริงสองรายการและแสดงบนคอนโซล

  • วิธีการนี้เรียกว่าโดยผ่านสองรายการนี้

  • มันถูกแปลงเป็นรายการและถูกกำหนดให้กับตัวแปร

  • ตัวแปรนี้แสดงเป็นเอาต์พุตบนคอนโซล