קורס Python שיעור תרגול רשימות


זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/python/lessons/list-comprehensions-lab
תשובה 1 לתרגול רשימות פייתון
"""
answer 19-1
"""
print [x for x in range(255) if x>=ord('a') and x<=ord('z')]
תשובה 2 לתרגול רשימות פייתון
"""
answer 19-2
"""
import sys
[_,word1,word2]=sys.argv
print [x for x in word1 if x in word2]
לייק 1
תושבה 3 לתרגול רשימות פייתון
"""
answer 19-3
"""
chars=map(chr,range(ord('a'),ord('z')))
print [x+y+z for x in chars for y in chars for z in chars]

הי יוני,

כמה הערות לגבי הפיתרונות:

  1. בתרגיל הראשון המטרה היתה להציג את כל האותיות הקטנות (עצמן) ולא את ערכי ה ASCII שלהן.

  2. בתרגיל השלישי המשתנה chars אצלך לא כולל את האות z


תשובה 1 לתרגול רשימות פייתון
"""
answer 19-1
"""
print [chr(x) for x in range(255) if x>=ord('a') and x<=ord('z')]
תושבה 3 לתרגול רשימות פייתון
"""
answer 19-3
"""
chars=map(chr,range(ord('a'),ord('z')+1))
print [x+y+z for x in chars for y in chars for z in chars]

בראשון הייתי מצמצם את הטווח ומוותר על ה if:

print [chr(x) for x in range(ord('a'), ord('z') + 1)] 

תרגיל 1:

print [chr(x)  for x in range(1,256) if chr(x)>='a' and chr(x)<='z']
לייק 1

תרגיל2:

import sys
(word1,word2)=sys.argv[1:3]
common_letters = [c1 for c1 in word1  for c2 in word2   if c1==c2  ]
print set(common_letters)
לייק 1