چرا اینجا استاد برای پیمایش کردن طول یک 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 بنویسیم