Reposting a somewhat shortened version of my earlier ask based on a fellow
user's feedback (thanks Alan G). I still think it's important to share/repeat
some background. Admin/moderator, please feel free to delete my prior post.
Thx.
Hello Tutors!
I am an ambitious Python newbie without any CS background! I am currently
taking an online Python programming course. I have quite some ways to go. But
based on what I have learned so far (data types,
lists/dictionaries/tuples/sets, conditional statements, for and while loops,
functions, lambdas, maps and filters, simple built-in functions like
min/max/any/all/abs/round/len/ sorted/reversed),
I am trying to solve what I think is an interesting set of problems pertaining
to a list of songs (Bollywood artists and songs are listed in the example, but
that's NOT important, although it might be too distracting for some people).
I would appreciate it if you could simply focus on the nature of the data to be
used and the multi-part problem. Those willing to help, it might be easier if
you copy and paste the below code into a Python 3 text editor/interpreter
(whatever works for you).
I have added some comments, too, and hope they will be useful. I am not
looking for a spoon-fed solution to every single unsolved problem. Just
something that would push me over to the next step would suffice. I know how
to solve each of these problems conceptually (anyone can solve them in their
mind). What I'm struggling the most with is the syntax and order of certain
functions when solving. Perhaps I am not considering some intermediate code
steps that are required and/or helpful.
Please note that the primary objective is to solve these problems using
lambdas, filters, maps, etc. and NOT for or while loops or list comprehensions.
Any help will be greatly appreciated with heartfelt thanks and email
fist-bumps. Thank you for your time and consideration.
Regards,
Rahul A.
So here it goes.
# This function accepts a list of several dictionaries that contain song
artists' names and their song titles and
# returns the following outputs in tuples (remember to return a tuple for each
output!):
# 4. The longest song title in the entire song list
# 6. A tuple containing the name of the artist w/ longest song title and their
longest song title
# 7. A tuple containing the name of the artist w/ longest song title and the
length of their longest song title
# 9. A list of artists and their longest song titles sorted in descending order
of the length of the song title
# 9a. Similar list as original but longest title listed first and shortest
title listed last for each artist
# 9b. BONUS: same as 9a above with artists sorted in default ascending order.
Thus the artists will be listed
# in regular alphabetical order, but their song titles will listed in the
descending order of title length.
songmix = [
{"artist":"Rafi","titles":["Pukarta chala hoon main","Aapke haseen rukh
pe","Thaheriye hosh main aaloon","Woh jab yaad aaye","Deewana hua badal","Ehsan
tera hoga mujhpar"]},
{"artist":"Asha","titles":["Aja aja main hun pyar tera","Dil cheez kya
hai","Aaiye meherban","Aao huzur tum ko","In aankhon ki masti mein","Paan khaye
saiyan humaro"]},
{"artist":"Suman","titles":["Rahete kabhi jinke dil mein","Na tum hamen
jano","Jo hum pe guzarti hai","Rahe na rahe hum","Aajkal tere mere pyar
ke","Tujhe dekha tujhe chaha","Parbaton ke pedon par","Tumne pukara aur"]},
{"artist":"Kishor","titles":["Beqarar dil","Nile nile ambar pe","Muqaddar ka
sikandar","Mere mehboob kayamat hogi","Mere sapno ki rani kab","Pyar diwana
hota hai","O mere dil ke chain","Yeh shaam mastani","Pal pal dil ke paas"]},
{"artist":"Lata","titles":["Lag ja gale","Tera jana dil ke armanon ka","Tera
mera pyar amar","Yoon hasraton ke daag","Awaz deke hamen tum bulao","Mujhe
kitana pyar hai tumse","Mausam hai aashiqana","Tujhe dekha to jana
sanam","Salam-e ishq meri jaan","Yeh dil aur unki"]},
{"artist":"Hemant","titles":["Tumhe yaad hoga","Tum pukar lo","Jane wow kaise
log the","Neend na mujhko aye","Beqarar karke humein",]},
{"artist":"Talat","titles":["Jalte hain jisake liye","Jayen to jayen kahan"]},
{"artist":"Manna","titles":["Zindagi kaisi hai paheli haye","Poochho na kaise
maine rain bitayee","Laga chunari mein daag"]},
{"artist":"Alka","titles":["Akele hain to kya gam hai","Jane kyun log pyar
karte hain","Kuchh kuchh hota hai","Pardesi pardesi jana nahi"]}
]
# 4. The longest song title in the entire songs list
def longest_title (songmix):
temp = max(songmix, key=lambda num: len(max(num['titles'])))
return list(map(lambda x: max(songmix, key=lambda num:
len(max(num['titles'])))['artist'],
filter(lambda title: max(len('title')), temp)))
print (longest_title (songmix))
# Error Message in PowerShell:
# Traceback (most recent call last):
# File ".\Lambdas_Built_in_Functions_Min_Max_Sorted_Adv_short.py", line 33,
in
# print (longest_title