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

how to print a list that is in a dictionary, as a string in python? And how to edit the list's elements?

我有一个具有字典属性的 class。该字典以歌曲名称作为键,并包含一个包含艺术家、流派和播放次数的列表,如下所示:

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

playCount 是一个整数。如何在不更改任何其他元素的情况下将 1 添加到 playCount 元素。我是为它创建一个新功能还是可以不创建一个功能?另外,我如何创建一个函数来将字典的键和值打印为这样的字符串:

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