如何将字典中的列表打印为 Python 中的字符串?以及如何编辑列表的元素?



我有一个具有dictionary属性的类。该词典以歌曲标题为关键字,列表中包含艺术家、流派和播放次数,如下所示:

class library:
def __init__(self,library):
self.library={}
def addSong(self,title,artist,genre,playCount):
self.library[title]=[artist,genre,playCount]

playCount是一个整数。如何在不更改任何其他元素的情况下向playCount元素添加1。我是为它制作一个新函数,还是可以在不制作函数的情况下进行?。此外,我如何制作一个函数,将字典的键和值打印为这样的字符串:

artist, title (genre), playCount

IIUC,您只想在每次将现有标题传递给addSong时递增playCount,对吗?

您可以在addSong中放入if-else条件来检查title是否在self.library中,如果存在,则只需将键title的值的最后一个元素增加playCount

此外,要打印,只需将项目分配到正确的位置即可:

class library:
def __init__(self):
self.library = {}

def addSong(self, title, artist, genre, playCount=1):
if title in self.library:
self.library[title][-1] += playCount
else:
self.library[title] = [artist, genre, playCount]

def get_song_data(self, title):
if title in self.library:
x = self.library[title] + [title]
return "{0}, {3} ({1}), {2}".format(*x)
lib = library()

输出:

lib.addSong('Easy on Me','Adele','ballad',10)
print(lib.get_song_data('Easy on Me'))         # Adele, Easy on Me (ballad), 10
lib.addSong('Easy on Me','Adele','ballad',2)
print(lib.get_song_data('Easy on Me'))         # Adele, Easy on Me (ballad), 12
lib.addSong('Easy on Me','Adele','ballad')
print(lib.get_song_data('Easy on Me'))         # Adele, Easy on Me (ballad), 13

最新更新