如何在字典中删除和打印某些内容?

时间:2014-04-27 21:49:03

标签: loops python-3.x dictionary

我正在完成一项家庭作业,我无法弄清楚如何从字典中删除一首歌,我如何才能获得仅在歌曲列表中打印出艺术家的功能?

pl=[]
    song ={"song":"Baby","artist":"Justin Bieber","duration":220,"genre":"pop"}

    pl.append(song)

    def printPlaylist(pl):
        for i in range (0,len(pl)):
            play = pl [i]
            print("song-",play["song"])
            print("artist-",play["artist"])
            print("duration-",play["duration"])
            print("genre-",play["genre"])
            print("---")
    print("raw list")
    printPlaylist(pl)

    def addSong(pl,song,artist,duration,genre="pop"):
        pl.append ({"song":title,"artist":singer,"duration":time,"genre":kind})

    def removeSongs(pl,song):
        title = ("Enter a song")
        if song in pl:
            del song[title]
        else:
            print = ("Song not in list")

    def listByArtist(pl):
         listByArtist = sorted(listByArtist,key=pl

2 个答案:

答案 0 :(得分:0)

要获取字典的特定值,请通过其键调用它:

song ={"song":"Baby","artist":"Justin Bieber","duration":220,"genre":"pop"}
artist = song["artist"]
print artist #Justin Bieber

从字典中删除你到底是什么意思?

答案 1 :(得分:0)

要从歌曲的LIST(非字典)中删除歌曲,您需要这样的smth:

def removeSongs(pl, song):
    removed_indices = []
    for ix, s in enumerate(pl):
        if s["song"] == song:
            removed_indices.append(ix)
    for i in removed_indices:
        del pl[i]
    return True if removed_indices else False

然后你可以像这样使用它:

title = raw_input("Enter song title to remove: ")
smth_was_removed = removeSongs(playlist, title)
if not smth_was_removed:
    print("No such song")
else:
    print("All songs with that title were removed")

此外,del并不意味着像列表那样使用;如果要从列表中删除项目,则需要知道其索引:

>>> a = ["Erik", "John", "Mary"]
>>> del a[1]  # deletes "John"
>>> a
["Erik", "Mary"]

在字典上,它的工作原理如下:

>>> x = {"a": 1, "b": 2, "c": 3}
>>> del x["b"]
>>> x
{"a": 1, "c": 3}