| نیاز | انتخاب | چرا |
|---|---|---|
عضویت مکرر (in) | set | میانگین O(1) |
| کلید → مقدار | dict | درهمسازی؛ get با پیشفرض |
| دنباله با ترتیب | list | ایندکس و برش |
| صف دو سر (FIFO) | collections.deque | افزودن/حذف O(1) از هر دو سر |
| رکوردِ ثابت | tuple / دیتاکلاس | تغییرناپذیری = امنیت |
from collections import deque
q = deque(["a", "b"])
q.appendleft("z") # در list همین کار O(n) بود
دام امتحانی: in روی لیستِ بزرگ خطی است و برنامه را خفه میکند؛ همان داده در set پرواز میکند. و dict از ۳.۷ به بعد ترتیب درج را نگه میدارد — ولی «ترتیب» با «مرتببودن» فرق دارد.
برداشت نادرست رایج
اشتباه رایج
list همهکاره است و برای همهچیز کافی است.
تصحیح
list برای دنباله عالی و برای عضویت مکرر فاجعه است. انتخاب ساختار، اولین تصمیمِ عملکردیِ هر برنامه است.