正确的语法,以便从MySQL数组中按值删除列表元素

时间:2013-03-18 18:28:48

标签: python mysql

我有一个MySQL数组转换为Python列表,我想从列表中删除一个元素值。这就是我尝试过的:

existingEpisodeIDs = list(c.fetchall())
existingEpisodeIDs = [(22528819L,), (22604873L,), (22677186L,)]
id = 22528819
listElement = '(' + str(id) + 'L,)'
existingEpisodeIDs.remove(listElement)

但我明白了:

ValueError: list.remove(x): x not in list

鉴于以上数据,任何人都可以告诉我有关用于删除元素的正确语法,或建议更好的方法来实现所需的结果吗?

由于

2 个答案:

答案 0 :(得分:3)

existingEpisodeIDs = [row[0] for row in c.fetchall()] #this will end up just being a list of id's
id = 22528819
existingEpisodeIDs.remove(id)

答案 1 :(得分:0)

In [17]: existingEpisodeIDs = [(22528819L,), (22604873L,), (22677186L,)]

In [18]: id = 22528819

In [19]: existingEpisodeIDs.remove((id,)) #tuple with the id

In [20]: existingEpisodeIDs
Out[20]: [(22604873L,), (22677186L,)]

只是在这里快速回复你的错误:L识别长型

In [23]: type(existingEpisodeIDs[0][0])
Out[23]: long

你没有必要在最后构造一个带有L的字符串,你只需用你需要删除的id来构造元组并设置:)