حذف آیتمهای تکراری در یک لیست در پایتون
در این آموزش از آکادمی مطلب دی ال قصد داریم نحوه حذف آیتمهای تکراری در یک لیست در زبان پایتون را آموزش دهیم. مسلما برای همه ی ما پیش آمده است که در یک پروژه بخواهیم از یک لیستی (آرایه) برای ذخیره سازی اطلاعات استفاده کنیم. گاهی اوقات امکان دارد آیتم های تکراری در لیست به وجود آید و به وجود آیتمهای تکراری نیازی نباشد و بخواهیم از میان آیتمهای تکراری تنها یکی را نگه داریم و بقیه را حذف کنیم. در این آموزش ۴ روش برای حذف آیتمهای تکراری آورده شده است.
نوشتن برنامه با استفاده از دیکشنری پایتون
برای روش اول یعنی استفاده از دیکشنری پایتون از توابع موجود در Python Dictionary استفاده می کنیم. قطعه کد زیر را که از این روش استفاده می کند در نظر بگیرید:
GoT = ['Ali', 'Reza', 'Iman', 'Mojtaba', 'Iman', 'Mojtaba', 'Ali'] print(GoT) Mylist = list(dict.fromkeys(GoT)) print(Mylist)
خروجی این قطعه کد به صورت زیر است:
['Ali', 'Reza', 'Iman', 'Mojtaba', 'Iman', 'Mojtaba', 'Ali'] ['Ali', 'Reza', 'Iman', 'Mojtaba']
همانگونه که مشاهده می کنید در سطر دوم خروجی ها خبری از آیتمهای تکراری نیست.
برای اینکار ابتدا یک لیست (فرهنگ لغت-Dictionary) تعریف کردیم. در خط دوم در دستور مربوط به فرهنگ لغت یا dict اقلام تکراری به صورت خودکار حذف شدند زیرا فرهنگ لغت نمی تواند شامل اقلام تکراری باشد. با حذف لغت تکراری سپس با دستور list() خروجی فرهنگ لغت را به لیست تبدیل کرده و نمایش می دهیم.
نوشتن یک تابع
برای اینکار از قطعه کد زیر استفاده می کنیم. توجه کنید که ورودی ، خروجی و منطق این کد با کد بخش قبل یکسان است. و تنها آنرا در قالب یک تابع تعریف کردیم تا راحت تر بتوانیم در برنامه های بزرگ تر و پیچیده تر از آن استفاده کنیم:
GoT = ['Ali', 'Reza', 'Iman', 'Mojtaba', 'Iman', 'Mojtaba', 'Ali'] def unique(data): return list(dict.fromkeys(data)) print(GoT) FinalList = unique(GoT) print(FinalList)
با توجه به کد بالا، هر زمانی نیاز باشد که آیتمهای تکراری یک لیست حذف شوند کافیست تابع unique صدا زده شود.
استفاده از دستور not
در این روش از منطق اگر وجود ندارد پس اضافه کن استفاده می کنیم. برای این کار یک تابع تعریف کرده، سپس درون تابع یک لیست جدید تعریف می کنیم. سپس با استفاده از یک حلقه، هر آیتمی که از لیست اصلی در لیست جدید وجود ندارد (not) را به لیست جدید اضافه (append) می کنیم. برای این کار از کد زیر استفاده میشود.
GoT = ['Ali', 'Reza', 'Iman', 'Mojtaba', 'Iman', 'Mojtaba', 'Ali'] def duplicate(items): unique = [] for item in items: if item not in unique: unique.append(item) return unique print(duplicate(GoT))
استفاده از دستور set
در این روش از مفهوم مجموعه استفاده میکنیم. همانگونه که میدانیم در مجموعه ها آیتم تکراری وجود ندارند. در پایتون نیز یک ساختار داده تحت عنوان Python Set وجود دارد که شامل داده های غیر تکراری است. در این حالت از قطعه کد زیر استفاده میشود.
GoT = ['Ali', 'Reza', 'Iman', 'Mojtaba', 'Iman', 'Mojtaba', 'Ali'] finalData = list(set(GoT)) print(finalData)
همانگونه که دیدید روشهای متنوعی برای حذف آیتمهای تکراری در پایتون وجود دارد که بسته به سلیقه و نوع برنامه می تواند مورد استفاده قرار گیرد. تمامی این برنامه ها در IDE پایچرم (PyCharm) تست شده اند.
پایان

دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.