0

我有一个 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

鉴于上述数据,任何人都可以告诉我用于删除元素的正确语法,或者建议一种更好的方法来达到预期的结果吗?

谢谢

4

2 回答 2

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)
于 2013-03-18T18:30:54.870 回答
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 构造元组即可:)

于 2013-03-18T18:38:37.600 回答