Последовательность распаковка:
singleitem, = mylist
# Identical in behavior (byte code produced is the same),
# but arguably more readable since a lone trailing comma could be missed:
[singleitem] = mylist
Явное использование протокола итератора:
singleitem = next(iter(mylist))
деструктивного поп:
singleitem = mylist.pop()
Отрицательный индекс:
singleitem = mylist[-1]
устанавливается с помощью одной итерации for
(потому что переменная цикла остается доступной с последним значением, когда цикл завершается):
for singleitem in mylist: break
многие другие (сочетающих или различных битов выше, или иным образом, опираясь на неявной итерации) , Но ты получил идею.
Возможны альтернативы, но обычно есть только один * очевидный способ сделать это - и в этом случае вы, кажется, уже нашли его. – ekhumoro
если он * всегда * содержит один элемент, то, может быть, 'list' не лучший тип данных? –
@ekhumoro: Я на самом деле частично к методу распаковки последовательности, потому что он проверяет предположение, что последовательность имеет только один элемент. 'mylist [0]' преуспевает, если у вас есть хотя бы один элемент, но не жалуется, если у вас на самом деле было 30 элементов. 'singleitem, = mylist' проверяет, что у вас есть ровно один элемент, не более, не меньше. – ShadowRanger