💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ محمدرضا مجیدی
برای پیمایش کردن طول یک set
محمدعلی رضا حل شده توسط محمدعلی رضا

سلام وقت بخیر 

چرا اینجا استاد برای پیمایش  کردن طول یک set  مساوی با  1 گذاشتند یکم برام نامفهومه چرا 2 نگذاشت  

چرا با دوباره set را نوشتند مگر خودش set نبود

سلااااااااااااااااااااام محمدرضا جان

وقت شما هم بخیر

نتیجه این دستور

zip(*words)

یه generator هست. که با کلاس list و tuple میتونیم تبدیل به لیست یا تاپل اش کنیم. که اینجا در خط زیر تبدیل به tuple اش کردیم. در واقع تبدیل به تاپلی از تاپل‌ها کردیمش.

s = tuple(zip(*words))

و داخل if یه عضو از تاپل s رو برمیداریم (متغیر i که خودش هم تاپل هست) و تبدیل به set میکنیم. باعث میشه اعضا تکراری اون تاپل حذف بشن.

set(i)

و با len وقتی طول اعضاش رو میگیریم. و توی if چک میکنیم که آیا طول اعضاش برابر با ۱ هست میفهمیم که آیا اون چند تا رشته حرف i ام شون یکی هست یا متفاوته

if len(set(i)) == 1:

فک میکنم با توضیحات بالا به جواب سوالات تون رسیده باشید. ولی باز جواب تک تک سوالات تون رو میدم.

 

جواب سوال ۱) استاد برای اینکه این قضیه رو چک کنن مساوی مساوی ۱ رو گذشتن:

آیا اون تاپل اگر تبدیل به set اش کنیم (تکراری هاش رو حذف کنیم) آیا طولش (len) برابر با یک میشه؟ یعنی آیا فقط یه عضو منحصر به فرد داره؟

 

جواب سوال ۲) متغیر s تاپلی هست از تاپل‌ها که i که عضوی از s هست هم یه تاپل عه. و استاد برای تبدیل i به set از کلاس set استفاده کردن.

 

امیدوارم تونسته باشم سوالات تون رو شفاف توضیح داده باشم. اگر باز سوالی داشتید در خدمتم :) 

بهترین پاسخ
محمدعلی رضا ۲۰ اردیبهشت ۱۴۰۰، ۲۳:۳۷

سلام جواب استاد رو لطفا اینجا بنویسید که چطوری بدون zip بنویسیم

کار آموز ۲۳ اردیبهشت ۱۴۰۰، ۱۹:۳۹