مقدمه
یکی از ویژگیهای جذاب پایتون، خوانایی بالا و سادگی در نوشتن کدهاست. اما جذابتر از اون، توانایی انجام کارهای پیچیده در فقط یک خط کده! به این نوع ترفندها میگن One-liner یعنی کاری که معمولاً چند خط طول میکشه، در یک خط انجامش بدی.
این ترفندها باعث میشن:
- کدت تمیزتر و حرفهایتر بشه
- سریعتر بنویسی و تست کنی
- و وقتی با تیم کار میکنی، بقیه راحتتر متوجهش بشن
ترفندها
معکوس کردن لیست
معمولاً برای معکوس کردن یه لیست، از حلقه یا تابع reverse() استفاده میکنن، ولی یه راه خیلی کوتاهتر وجود داره:
my_list = [1, 2, 3, 4]
reversed_list = my_list[::-1]
print(reversed_list) # [4, 3, 2, 1]
نکته: [::-1] یعنی از آخر تا اول برو، گام منفی ۱ یعنی معکوس کردن ترتیب.
فیلتر کردن مقادیر
فرض کن یه لیست از اعداد داری و فقط میخوای اعداد زوجش رو نگه داری.
nums = [1, 2, 3, 4, 5]
even = [x for x in nums if x % 2 == 0]
print(even) # [2, 4]
این ساختار بهش میگن List Comprehension و یکی از پرکاربردترین One-linerهاست.
جمع کل اعداد در لیست
خیلی سادهتر از نوشتن حلقه for:
nums = [1, 2, 3, 4, 5]
total = sum(nums)
print(total) # 15
تابع sum() یکی از توابع داخلی پایتونه که جمع همه عناصر عددی لیست رو برمیگردونه.
ساخت دیکشنری با یک خط
میخوای دیکشنری بسازی که کلیدش یه عدد باشه و مقدارش توان دوم اون عدد:
squares = {x: x**2 for x in range(5)}
print(squares) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
به این ساختار میگن Dictionary Comprehension مثل لیست.
بررسی وجود عدد در لیست
به جای نوشتن حلقه برای جستوجو:
nums = [10, 20, 30, 40]
print(20 in nums) # True
با in فقط در یک خط میتونی بررسی کنی که مقداری داخل مجموعه هست یا نه.
ادغام دو لیست
a = [1, 2, 3]
b = [4, 5, 6]
merged = a + b
print(merged) # [1, 2, 3, 4, 5, 6]
🔹 با + میتونی دوتا لیست رو در یک خط به هم بچسبونی.
پیدا کردن بیشترین مقدار
nums = [10, 45, 23, 99, 56]
print(max(nums)) # 99
تابع max() خودش کل لیست رو میگرده و بزرگترین مقدار رو میده.
حذف تکراریها از لیست
nums = [1, 2, 2, 3, 3, 4]
unique = list(set(nums))
print(unique) # [1, 2, 3, 4]
با تبدیل به set مقادیر تکراری حذف میشن.
شرط در یک خط (Ternary Operator)
age = 20
msg = "مجاز به ورود" if age >= 18 else "ورود ممنوع"
print(msg)
این ساختار مثل if-else عمل میکنه ولی فقط در یک خط.
شمارش سریع حروف یا کلمات
sentence = "python is fun"
count = {ch: sentence.count(ch) for ch in set(sentence)}
print(count)
با ترکیب set() و count() میتونی فراوانی هر کاراکتر رو به راحتی بشماری.
نتیجهگیری
One-linerها فقط برای کوتاه کردن کد نیستن، بلکه باعث میشن:
- منطق برنامهات تمیزتر و خواناتر باشه
- اشتباهات کمتر بشن
- و زمان توسعه خیلی سریعتر پیش بره
ولی حواست باشه: اگه One-liner باعث بشه کد سختتر خونده بشه، بهتره ازش صرفنظر کنی. هدف نهایی همیشه خوانایی و درک راحتتر کده.
منابع
- Python Official Documentation – Comprehensions
- Real Python – Python One-Liners
- GeeksforGeeks – Python One Liners