שאלות ממבחני עבר#
פתחו את המבחן בקישור הבא וענו של שאלה 1 סעיף א:
def tuples_to_dict(mandates_list, rivalries_list):
# Write you code here
pass
פתרון
def tuples_to_dict(mandates_list, rivalries_list):
result = {}
for (party, mandates) in mandates_list:
rivals = []
for rivalry in rivalries_list:
if party == rivalry[0]:
rivals.append(rivalry[1])
elif party == rivalry[1]:
rivals.append(rivalry[0])
result[party] = {"mandates": mandates, "rivals": rivals}
return result
mandates_list = [("loopers", 30), ("recursives", 40),
("numpys", 25), ("mutables", 10),
("immutables", 10), ("pandas", 5)]
rivalries_list = [("loopers", "recursives"), ("mutables", "immutables"), ("loopers", "numpys")]
print(tuples_to_dict(mandates_list, rivalries_list))
פתחו את המבחן בקישור הבא וענו של שאלה 1 סעיף א.1:
2324AMoedA
def string2dict(s):
# Write you code here
pass
פתרון
def string2dict(s):
d = {}
items = s.split(",")
for it in items:
k, v = it.split(":")
d[k] = v
return d
print(string2dict("z3:b,y2:c,x1:d"))
כעת פתרו את שאלה 1 סעיף א.2 באותו מבחן:
def get_highest_key_by_val(d,k1,k2,k3):
# Write you code here
pass
פתרון
def get_highest_key_by_val(d,k1,k2,k3):
l = [(k1, d.get(k1,'A')), (k2, d.get(k2,'A')), (k3, d.get(k3,'A'))]
mx = max(l, key=lambda a: a[1])
return mx[0]
s = "z3:b,y2:c,x1:d"
d = string2dict(s)
print(get_highest_key_by_val(d,'z3','y2','x5'))
פתחו את המבחן בקישור הבא וענו של שאלה 1 סעיף א.1:
2223AMoedA
def build_suffix_dict(lst, k):
# Write you code here
pass
פתרון
def build_suffix_dict(lst, k):
d = {}
for i in range(len(lst)):
sfx = lst[i][-k:]
if sfx in d:
d[sfx].append(i)
else:
d[sfx] = [i]
return d
lst = ["good luck!", "Hello", "cartago", "duck duck go", "go girl", "lololo"]
print(build_suffix_dict(lst, 2))
כעת, פתרו את אותה שאלה מבלי להשתמש בתנאים:
def build_suffix_dict_no_cond(lst, k):
# Write you code here
pass
פתרון
def build_suffix_dict_no_cond(lst, k):
d = {}
for i in range(len(lst)):
sfx = lst[i][-k:]
d[sfx] = d.get(sfx, []) + [i]
return d
lst = ["good luck!", "Hello", "cartago", "duck duck go", "go girl", "lololo"]
print(build_suffix_dict_no_cond(lst, 2))
פתחו את המבחן בקישור הבא וענו של שאלה 1 סעיף א:
def get_all_ordered_doublets(l):
# spot 2 bugs
res = []
for a in range(len(l)):
res.append((l[:a+1], l[a:len(l)]))
return res
print(get_all_ordered_doublets([1, 52, 4]))
[([1], [1, 52, 4]), ([1, 52], [52, 4]), ([1, 52, 4], [4])]
פתרון
def get_all_ordered_doublets(l):
# spot 2 bugs
res = []
for a in range(1, len(l)): # instead of for a in range(len(l))
res.append((l[:a], l[a:len(l)])) # instead of res.append((l[:a+1], l[a:len(l)]))
return res
print(get_all_ordered_doublets([1, 52, 4]))