🧺 ساختمان داده‌ها

متدهای لیست: sorted، pop، remove، split و join

۴ گام

برداشتن، حذف کردن، مرتب کردن

L = [9, 6, 0, 3]

last = L.pop()        # آخرین خانه را برمی‌دارد و برمی‌گرداند
L.remove(0)           # اولین خانه‌ای که مقدارش 0 است را حذف می‌کند
new = sorted(L)       # لیست جدید مرتب‌شده؛ اصلی دست‌نخورده
کار چه می‌کند لیست اصلی
L.pop() آخرین خانه را برمی‌گرداند و حذف می‌کند جهش می‌کند
L.remove(x) دنبال مقدار x می‌گردد و اولین مورد را حذف می‌کند جهش می‌کند
del L[0] خانهٔ اندیس ۰ را حذف می‌کند جهش می‌کند
L.sort() در جا مرتب می‌کند و None برمی‌گرداند جهش می‌کند
sorted(L) لیست جدید مرتب‌شده می‌سازد دست‌نخورده

⚠️ x = my_list.sort() تقریباً همیشه اشتباه است: x می‌شود None. یا sort() را تنها بنویس، یا از sorted استفاده کن.

و این هم جفت پرکاربرد رشته ↔ لیست:

parts = "salam donya".split()   # ['salam', 'donya']
joined = "-".join(parts)        # 'salam-donya'

در درس متدهای لیست یک دام مهم هم هست که حتماً باید ببینی: hot = warm لیست را کپی نمی‌کند، فقط اسم دیگری روی همان لیست می‌گذارد و تغییر یکی، دیگری را هم عوض می‌کند. برای کپی واقعی از warm[:] یا warm.copy() استفاده کن.

  1. ۱گام ۱

    این لیست را بساز: nums = [9, 6, 0, 3]

    حالا یک نسخهٔ مرتب‌شدهٔ آن را در متغیر new بریز — با تابع sorted(nums) — به‌طوری که لیست اصلی دست‌نخورده بماند. در آخر هر دو را چاپ کن.

    دقت کن: nums.sort() لیست را در جا مرتب می‌کند و None برمی‌گرداند؛ ما اینجا sorted می‌خواهیم.

  2. ۲گام ۲

    حالا با متد pop آخرین خانه لیست را بردار: نتیجه را در متغیر last بریز (nums.pop()) و بعد last و لیست را با هم چاپ کن.

    برای [9, 6, 0, 3] باید 3 برگردد و لیست [9, 6, 0] شود.

  3. ۳گام ۳

    یک فرق مهم: pop با اندیس کار می‌کند و مقدار را برمی‌گرداند، ولی remove(x) دنبال مقدار می‌گردد. عدد 0 را با remove حذف کن و لیست را چاپ کن.

    لیست باید [9, 6] شود.

  4. ۴گام ۴

    گام آخر: تبدیل رشته به لیست و برگشت. جملهٔ sentence = "salam donya" را:

    - با متد split به لیست کلمه‌ها تبدیل کن و در parts بریز. - با join کلمه‌ها را دوباره بچسبان، این بار با خط تیره بین‌شان: "-".join(parts) و در joined بریز. - در آخر joined را چاپ کن: salam-donya

در حال آماده‌سازی ویرایشگر…