وقتی از دیکشنریها عبور میکنید، کلید و مقدار متناظر میتوانند به طور همزمان با استفاده از متد items() بازیابی شوند.
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
... print(k, v)
...
gallahad the pure
robin the brave
وقتی از یک توالی عبور میکنید، اندیس موقعیت و مقدار متناظر میتوانند به طور همزمان با استفاده از تابع enumerate() بازیابی شوند.
>>> for i, v in enumerate(['tic', 'tac', 'toe']): ... print(i, v) ... 0 tic 1 tac 2 toe
برای حلقه زدن روی دو یا چند توالی به طور همزمان، میتوان ورودیها را با تابع zip() جفت کرد.
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
... print('What is your {0}? It is {1}.'.format(q, a))
...
What is your name? It is lancelot.
What is your quest? It is the holy grail.
What is your favorite color? It is blue.
برای حلقه زدن روی یک توالی به صورت معکوس، ابتدا توالی را به صورت مستقیم مشخص کرده و سپس تابع reversed() را فراخوانی کنید.
>>> for i in reversed(range(1, 10, 2)): ... print(i) ... 9 7 5 3 1
برای حلقه زدن روی یک توالی به ترتیب مرتبشده، از تابع sorted() استفاده کنید که یک لیست مرتبشده جدید برمیگرداند در حالی که منبع را بدون تغییر باقی میگذارد.
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] >>> for i in sorted(basket): ... print(i) ... apple apple banana orange orange pear
استفاده از set() روی یک توالی عناصر تکراری را حذف میکند. استفاده از sorted() در ترکیب با set() روش قراردادی برای حلقه زدن روی عناصر منفرد توالی به ترتیب مرتبشده است.
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] >>> for f in sorted(set(basket)): ... print(f) ... apple banana orange pear
گاهی وسوسهانگیز است که یک لیست را در حین عبور از آن تغییر دهید؛ با این حال، معمولاً سادهتر و ایمنتر است یک لیست جدید ایجاد کنید.
>>> import math
>>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]
>>> filtered_data = []
>>> for value in raw_data:
... if not math.isnan(value):
... filtered_data.append(value)
...
>>> filtered_data
[56.2, 51.7, 55.3, 52.5, 47.8]این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://docs.python.org/3/tutorial