תרגילים 35\36 - אורכי רשימות\מיקומים

האם יש משהו שאנחנו יכולים להניח על הקלט מהמשתמש?
מבנה כלשהו של הקלט שעל בסיסו נוכל לעשות את ההמרה לרשימה או רשימה של רשימות?

חיפשתי ולא מצאתי דרך מובנית בפייתון לעשות המרה מinput שמתקבל כstr למבנה של רשימה

למשל - עבור תרגיל 35: האם הרשימה היא של איברים פשוטים או יכולים להיות בתוכה איברים שהם רשימות?
האם היא מתקבלת כרשימה של איברים המופרדים ע"י ", "?
האם המשתמש מכניס אותה עם [ ] או בלעדיהם?

למעשה יש מתודות שהופכות מחרוזת לרשימה, למשל המתודה split, אבל אני לא בטוחה שכבר למדנו אותן - ואם לא אז אסור להשתמש בהן.

אכן נלמדה ולכן מותר
העניין הוא שלא ברור באיזה אופן הקלט מתקבל ולכן שאלתי מה מותר להניח.

נגיד האם עבור רשימה הוא מתקבל באופן הבא: obj1, obj2, obj3, …
או שהוא מתקבל בסינטקס מלא של רשימה ז"א: [obj1, obj2, obj3, …]

לשני האופנים יש פתרונות, השאלה היא מה הכוונה

מותר להניח שמתקבל כמחרוזת ארוכה מופרדת בפסיקים :slight_smile:

אני הבנתי מתרגיל 36 (“מיקומים”) שההנחה היא שאנחנו מקבלים לפונקציה קלט שהוא בעצמו רשימה של רשימות, רק שלא בטוח האורך של הרשימה הגדולה. האם אני טועה?

כאשר אתם מגדירים פונקציות, הקלט אליהן לא בהכרח יגיע מהמשתמש דרך input אלא ייתכן שמישהו יקרא ישירות לפונקציה שלכם עם רשימה שהוא הגדיר ידנית, כלומר ככה:
my_nested_list = [[1, 2, 3], ["a", "b", "c"]]

@benditi אתה צודק. הפונקציה תקבל רשימה של רשימות שאתם לא יודעים עליה כלום, חוץ מהעובדה שהיא רשימה של רשימות.

אפשר, אם נוח לכם, לקלוט משתנה דרך input אך התרגיל לא דורש שום דבר פרט לעובדה שהפונקציה צריכה לקבל קלט שהוא בצורה הזאת.

איתמר

2 לייקים

האם מישהו קלט דרך אינפוט, מופרד עם פסיקים ונתקל בבעיית האיבר הראשון והאחרון שיש בהם ]] או [[? אני מנסה לפתור את זה עם ריפלייס אבל לא מצליחה…

אל תקלטי דרך input, פשוט תניחי שהארגומנט של הפונקציה הוא רשימה של רשימות.

את יכולה להריץ את הפונקציה ישירות מהתא של ה-jupyter כך:

my_function([ [1, 2, 3], [4, 5, 6, 7] ])