راکت
حل شده

سوال پایتون

2 پاسخ

سلام
کسی میتونه دلیل اینکه خروجی کد زیر اعداد list1 به صورت یکی درمیون هست؟

list1=[12,34,78,45,24,987,76,44]

it_list1=iter(list1)

for  i  in  it_list1:
    print(next(it_list1))
#OUTPUT>>> 
34
45
987
44

چرا اعضای list 1 یکی در میون چاپ شدن؟ بعد ا ز in ایتریتور itlist1 رو قرار دادم ، اگر بجاش خود لیست و میذاشتم کل اعضاش چاپ میشدن ولی توی این حالت یکی در میون چاپ شدن ، برام این مسئله سواله

ثبت پرسش جدید

پاسخ‌ها

2
محمدجواد
محمدجواد
@Sahramaj
بهترین پاسخ

در کدی که نوشته‌اید، از ایتریتور برای پیمایش لیست استفاده کرده‌اید. اما به دلیل استفاده از next(it_list1) در داخل حلقه for، هر بار که حلقه اجرا می‌شود، دو عنصر از لیست پیمایش می‌شود. به همین دلیل، فقط عناصر با اندیس‌های فرد لیست چاپ می‌شوند.

یعنی شما اولین عنصر رو وارد حلقه میکنید، دستور next میگه بعدیش (یعنی دومین عنصر) رو نمایش بده. پس الان تا عنصر دوم استفاده شد. در دور بعد حلقه، عنصر سوم رو وارد میکنه و با next، عنصر چهارم رو نشون میده و به همین ترتیب تا آخر پیش میره.

یعنی خروجی شما میشه عنصر دوم، چهارم، ششم و... .
اندیس اولین عنصر شما صفر هست.
پس یعنی اندیس عنصر دوم میشه 1، عنصر چهارم میشه 3، عنصر ششم میشه 5 و... .

یعنی مقدار اندیس های 1، 3، 5 و ... رو نمایش میده.

هادی
هادی
@jessie.rdk

تخصص: android developer

خیلی ممنونم از پاسخگوییتون کامل متوجه شدم❤️

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام