從這個查詢另一個變量的類型......如何從SQL查詢
self.cur.execute("""SELECT pub FROM "20091229"
GROUP BY pub ORDER BY pub""")
我得到的元組回到下面的列表。
>>[(1,), (2,), (3,)]
但我只需要一個列表或列表中沒有小數點的元組。 的類似:
[1, 2, 3]
或
[(1), (2), (3)]
感謝。
從這個查詢另一個變量的類型......如何從SQL查詢
self.cur.execute("""SELECT pub FROM "20091229"
GROUP BY pub ORDER BY pub""")
我得到的元組回到下面的列表。
>>[(1,), (2,), (3,)]
但我只需要一個列表或列表中沒有小數點的元組。 的類似:
[1, 2, 3]
或
[(1), (2), (3)]
感謝。
如果你告訴我們你用什麼模塊來使用db會更好。另外我不知道,但你的查詢可以進行優化,以這樣的「SELECT DISTINCT酒館FROM‘20091229’ORDER BY酒館」
我知道,這裏沒有人喜歡減少,但它也可以用於此處
from operator import add
reduce(lambda res,x: add(res, x), [(1,), (2,), (3,)])
OR的情況下有可能是僅單個項目的元組的列表:
from operator import itemgetter
map(itemgetter(0), [(1,), (2,), (3,)])
也許這不是解決問題的最好方法,但它起作用。 :)現在,我只是得到一個元組:(1,2,3)。 非常感謝。 –
謝謝@The_Fox - 有很多方法可以在Python中做事情,而選擇最好的方式總是隻取決於你。 –
這是怎麼回事?
li = [tup[0] for tup in li]
請注意,一個元組獲取的這樣寫的(1,)
,因爲(1)
意味着數學括號。此外,似乎您正在嘗試打印一份清單,請考慮使用專用的打印功能。
我需要一個列表,因爲我想在後面的sql查詢中使用這個列表作爲變量,並且小數點出現錯誤。 –
@The_Fox:問題在於你正在使用'str(li)'。考慮正確格式化列表。 – orlp
'[(1,),(2),(3,)]' - 這些都不是小數點(逗號)。這些是元組分隔符。 – eumiro