为什么我不能删除枚举列表中的值?

Why I can't delete vaules in enumerated list?

我想使用 remove 删除这些元组,但我做不到。 我应该如何删除列表中的值?(列表如 ["a","b","c"])

def delsong(self):
    value=enumerate(self.songlist)
    for i in value:
        print(i)
    print("which song you will delete: ")

    x=int(input(""))
    value.remove(x)

    pass

因为不是list,所以你可能想做的是self.songlist.pop(x)

您应该使用 list.pop:

直接从列表中删除一个项目
def delsong(self):
    for i in enumerate(self.songlist):
        # This prints the (index, value) pair as a tuple, is that what you intended?
        print(i)
    print("which song you will delete: ")

    self.songlist.pop(int(input("")))

请注意,除了发送中断或提供无效索引外,您没有为用户提供任何取消方式,负索引有效但倒数。例如,如果用户键入 -1,它将删除列表中的最后一首歌曲。

value 是一个迭代器,而不是列表本身。您需要从 self.songlist 中删除该项目。

由于您希望用户输入索引号,因此需要使用 self.songlist.pop(x)。 remove() 方法根据项目的值(而不是其索引)删除项目