如何将字典中的列表打印为 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
我有一个具有字典属性的 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