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 は long 型を識別します

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

最後に L を使用して文字列を作成する必要はありません。削除する必要がある ID を使用してタプルを作成するだけで、設定は完了です :)

于 2013-03-18T18:38:37.600 に答える