حذف موارد تکراری از لیست ها و … مسئله ایست که بارها به آن برخورد می کنیم، اما گاهی اوقات هنگامی که با ساختار های داده پیچیده و تو در تو سروکار داریم، به تکنیک های مختلفی برای رسیدگی به این نوع مسئله نیاز داریم. بیایید راه های مختلفی را که از طریق آن می توان به این کار دست یافت، بحث کنیم.
روش شماره 1: استفاده از sorted() + set()
این مشکل خاص با استفاده از توابع بالا قابل حل است. ایده اینجا این است که فهرست فرعی را مرتب کنیم و سپس عناصر مشابه را با استفاده از تبدیل به set حذف کنیم که به صورت خودکار موارد تکراری را حذف می کند.
خروجی:
The original list : [[1, 0, -1], [-1, 0, 1], [-1, 0, 1], [1, 2, 3], [3, 4, 1]]
The list after duplicate removal : [(-1, 0, 1), (1, 3, 4), (1, 2, 3)]
روش شماره 2: استفاده از set() + map() + sorted()
همان الگوریتم حل انجام شده توسط list comprehension در روش بالا را می توان با استفاده از تابع map و با استفاده از تابع لامبدا تغییر داد:
خروجی:
The original list : [[1, 0, -1], [-1, 0, 1], [-1, 0, 1], [1, 2, 3], [3, 4, 1]]
The list after duplicate removal : [(-1, 0, 1), (1, 3, 4), (1, 2, 3)]
روش شماره 3: استفاده از متد sorted() و عملگر های in و not in
خروجی
The original list : [[1, 0, -1], [-1, 0, 1], [-1, 0, 1], [1, 2, 3], [3, 4, 1]]
The list after duplicate removal : [(-1, 0, 1), (1, 2, 3), (1, 3, 4)]
دیدگاهها