Преобразование объекта deque в список
У меня есть проблема с обработкой данных в Python. В настоящее время я получаю данные в виде "списка" из своего хранилища и помещаю их в "деки" для работы с ними.
После обработки полученных данных мне нужно вернуть их обратно в хранилище. Это не будет проблемой, если я не буду вынужден использовать стандартный объект "list" в Python для сохранения этих данных.
Я использую хранилище Google Appengine.
Мой обходной путь выглядит следующим образом:
dequeObj = deque(myData)
my_list = list()
for obj in dequeObj:
my_list.append(obj)
Однако этот способ не кажется мне оптимальным. Есть ли более эффективные решения для этой задачи?
2 ответ(ов)
В Python, если вы хотите преобразовать collections.deque
в список, вы можете использовать функцию list()
. Она может принимать итерируемые объекты в качестве аргумента, и deque
является одним из них. Вот пример:
from collections import deque
# Создаем deque с элементами
my_deque = deque((1, 2, 3))
# Преобразуем deque в список
my_list = list(my_deque)
print(my_list) # Вывод: [1, 2, 3]
В результате вызова list(my_deque)
вы получите список, содержащий те же элементы, что и в deque
.
Вы правы, что дек (deque) является итерируемым объектом, поэтому его можно распаковать в список. Вот пример:
import collections
dq = collections.deque([1, 2, 3])
lst = [*dq]
print(lst) # [1, 2, 3]
Кроме того, вы можете создать новый список, упаковывая дек в переменную. Пример:
*d, = dq
print(d) # [1, 2, 3]
Оба метода позволяют получить список из элементов дека.
Как получить последний элемент списка?
Как клонировать список, чтобы он не изменялся неожиданно после присваивания?
Диапазон букв в Python
Нахождение среднего значения списка
Вывод списка в обратном порядке с помощью функции range()