در حال بارگذاری...

ساختن فهرست در یک خط

عددها از قبل نوشته شده‌اند: 2، بعد 5، بعد 1. یک خط از روی آن‌ها فهرست تازه‌ای می‌سازد. doubled = [n * 2 for n in prices] هر عدد را دو برابر می‌کند و 4، بعد 10، بعد 2 را نگه می‌دارد. prices عوض نمی‌شود. n فقط نام همان عددی است که نوبتش رسیده: اول 2، بعد 5، بعد 1.

4، بعد 10، و prices هنوز سه عدد دارد

python
prices = [2, 5, 1]
doubled = [n * 2 for n in prices]

print(doubled[0])
print(doubled[1])
print(len(prices))

روی صفحه 4 می‌آید، بعد 10، بعد 3. 4 همان عدد اول فهرست تازه است، دو برابر 2. 10 عدد بعدی است، دو برابر 5. 3 تعداد عددهایی است که prices هنوز دارد. آخرین عدد تازه 2 است، از دو برابر 1، و این برنامه آن را چاپ نمی‌کند.

prices[0] هنوز 2 است. دو برابر کردن فهرست تازه‌ای نوشته. فهرست قبلی را عوض نکرده. وقتی خط تمام شد، doubled را می‌خوانید. n فقط تا وقتی به کار می‌آمد که خط روی عددها راه می‌رفت.

یک آزمون می‌تواند عددی را راه ندهد. این برنامه از نو شروع می‌شود، پس doubled اینجا نیست. small = [n for n in prices if n < 5] عددی را نگه می‌دارد که از 5 کوچک‌تر باشد. 2 می‌آید. 5 نمی‌آید. 1 می‌آید. فهرست تازه 2 است، بعد 1. prices هنوز سه عدد دارد.

اولین عددِ مانده، بعد تعدادِ مانده‌ها

python
prices = [2, 5, 1]
small = [n for n in prices if n < 5]

print(small[0])
print(len(small))

روی صفحه 2 می‌آید، بعد 2. 2 اول همان small[0] است، عدد 2 که مانده. 2 دوم تعداد عددهایی است که مانده‌اند. 5 داخل small نیست. small[1] برابر 1 می‌شد و این برنامه آن را چاپ نمی‌کند.

📊 دو برابر، نگه‌داشتن، یا ایست

خط چه به دست می‌آید
[n * 2 for n in prices] فهرست تازهٔ 4 و 10 و 2، و prices سر جایش
[n for n in prices if n < 5] فهرست تازهٔ 2 و بعد 1، و 5 بیرون می‌ماند
prices[0] هنوز 2
n * 2 for n in prices برنامه می‌ایستد، چون کروشه‌ها نیستند

کروشه‌ها جزو همین خط‌اند. اگر نباشند، برنامه می‌ایستد. نام جلوی خط و نام بعد از for باید یکی باشند. [n * 2 for price in prices] هم می‌ایستد، چون n هیچ عددی نمی‌گیرد. price نامی است که راه می‌رود، و بخش دو برابر از آن استفاده نمی‌کند.

صفحهٔ بعد دربارهٔ نام یک ایست است، وقتی برنامه به مشکل می‌خورد. این صفحه فقط فهرست را در یک خط می‌سازد.

دو فهرست چه نشان می‌دهند

  1. برنامهٔ اول چه می‌نویسد؟
  2. بعد از آن برنامه، prices[0] چیست؟
  3. برنامهٔ دوم چه می‌نویسد؟
  4. اگر خط دو برابر را بدون کروشه بنویسید چه می‌شود؟

فهرست تازه، و فهرست قبلی سر جایش

صفحهٔ اول 4 است، بعد 10، بعد 3. prices[0] هنوز 2 است. صفحهٔ دوم 2 است، بعد 2: اول عددِ مانده، بعد تعدادِ مانده‌ها. 5 بیرون ماند. اگر کروشه‌ها را ننویسید، برنامه می‌ایستد. نامی که دو برابر می‌شود و نام بعد از for یکی هستند. صفحهٔ بعد دربارهٔ نام یک ایست است.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
4
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود