Найти - Пользователи
Полная версия: Проверить есть ли значение в кортеже
Начало » Python для новичков » Проверить есть ли значение в кортеже
1
Suliman
Делаю запрос к БД.
postcursor.execute('SELECT customer_id FROM REQUEST')
postselect_request_customer_id_result = postcursor.fetchall()
print postselect_request_customer_id_result
На консоли я вижу:


Как понимаю из БД мне возвражается кортеж. Так? Я пытаюсь проверить есть ли в нем число 6. Делаю так (для примера в отдельном файле). В итого “print ”6 is here“” не обрабатывается.

f = [(1,), (2,), (3,), (4,), (6,)]
print f
if 6 in f:
	print "6 is here"

В чем причина?
Shaman
if (6,) in f:
	print "6 is here"
Suliman
Shaman
Спасибо, а почему из БД возвращается число с запятой? Как возвращать оттуда нормальный список?
Shaman
Я не знаю зачем вы присваиваете f список чисел с запятой.
Suliman
Shaman
Мне из БД такой результат выдается на консоль.
Shaman
>>> (42)
42
>>> (42,)
(42,)
>>> type((42,))
<type 'tuple'>
>>> (42,)[0]
42
>>> 
ajib6ept
В соседней теме было решение http://python.su/forum/topic/24612/

postselect_request_customer_id_result = [r[0] for r in  postcursor.fetchall()]
py.user.next
Suliman
а почему из БД возвращается число с запятой?

Потому что это разные записи базы, где каждая запись включает одно поле.

>>> f = [(1,), (2,), (3,), (4,), (6,)]
>>> f = sum(f, ())
>>> f
(1, 2, 3, 4, 6)
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB