PDA

نسخه کامل مشاهده نسخه کامل : نحوه sort کردن set object در پایتون



smss.exe
28-03-2020, 16:43
سلام. من این کد رو دارم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

من اینجا یه فایل وروردی میگیرم csv و بعد معدل رو حساب میکنم و چاپ میکنم و توی یه فایل خروجی چاپ میکنم. حالا مثلا اون جایی که دارم پرینت میگیرم. میخوام به صورت sort شده باشه روی value ها. ولی نمیدونم چجوری باید این کارو بکنم.

وروردی هم اینه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Ali_vdo
28-03-2020, 19:26
سلام

یک راه می‌تونه این باشه که اون‌جایی که مقدار میانگین رو چاپ یا وارد فایل دوم می‌کنید، اون‌ها رو در یک ساختمان داده مثل دیکشنری (همون hashtable) وارد کنید. در انتها اون ساختمان داده رو بر حسب مقدار (و نه کلید) مرتب‌سازی کنید.
آموزش دیکشنری: [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
آموزش مرتب‌کردن دیکشنری بر اساس مقدار: [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

موفق باشید

smss.exe
28-03-2020, 20:09
سلام
خیلی ممنون از توضیحتون. ولی توی این تبدیل کردن مشکل دارم.
مثلا من کد رو تغییر دادم به این:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ولی خروجی اینطوری شده:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و به خاطر وجود None نمیتونه sort کنه و خطا میده.

Ali_vdo
28-03-2020, 20:56
اون چیزی که شما به اسم dic تعریف کردید در واقع یک چندتایی مرتبه. دارید سعی می‌کنید از یک چندتایی مرتب دیکشنری بسازید که به مشکل می‌خورید.
در واقع باید کاری مثل این بکنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

توصیه می‌کنم پایه‌های برنامه‌نویسی و پایتون (به طور خاص ساختمان‌های داده) رو تقویت کنید.
اگر زبانتون خوبه (اگر نیست خوبش کنید، زبان بلد نباشید در برنامه‌نویسی محدود می‌شید) که کتاب‌های پایتون انتشارات OReilly و No Starch رو بخونید.
برای حل مسئله در برنامه‌نویسی هم کتاب Think Like a Programmer از V. Anton Spraul که برای زبان سی‌پلاس‌پلاس نوشته شده اما پایه‌های برنامه‌نویسی که یاد می‌ده در همه‌ی زبان‌ها کاربرد داره. این کتاب یه نسخه‌ی جدید برای پایتون هم داره که البته من نتونستم جایی برای دانلود پیدا کنم.
سایت‌هایی مثل w3schools هم خوب هستن.

فارسی هم این کتاب رو می‌تونم توصیه بکنم:
از این پس پایتون ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]آموزش_زبان_برنامه_نویسی_پای تون.pdf)
(برای پایتون ۲ هست اما پایه‌ها خیلی تغییر نکردن)

موفق باشید

smss.exe
29-03-2020, 12:17
سلام. ممنون از توضیحتون. با این کار مشکل حل شد.
ولی الان توی sort کردن مشکل دارم.
من سعی میکنم با توجه به لینکی که دادید این خروجی رو تبدیل به یه لیست یا tuple کنم و توی اون از lambda استفاده کنم برای sort کردن روی دومین آیتمی که داره. ولی نمیشه.
این کدم هست:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

دو موردی که کامنت شده ست.