Более простое решение - использовать распаковку кортежей. Это уже сделает все, что вы хотите, включая проверку того, что он содержит ровно один элемент.
Отдельный предмет:
>>> name, = (name for name in ('bob','fred') if name=='bob')
>>> name
'bob'
Слишком много предметов:
>>> name, = (name for name in ('bob','bob') if name=='bob')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
Нет товаров:
>>> name, = (name for name in ('fred','joe') if name=='bob')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 0 values to unpack