#python
#python
Вопрос:
Я пытаюсь создать deque строк, но когда я добавляю строку в deque, она всегда разбивает строку на отдельные символы. Вот мой код на данный момент:
from collections import deque
my_string = "test"
my_queue = deque(my_string)
print my_queue
Результат, который я получаю, это:
deque(['t', 'e', 's', 't'])
Я хотел бы, чтобы результат был:
deque(['test'])
Есть мысли?
Ответ №1:
Конструктор deque принимает iterable в качестве параметра, если вы просто передадите ему строку, он будет интерпретировать ее как последовательность символов.
Чтобы сделать то, что вы хотите, вы должны обернуть свою строку в список:
your_string = 'string'
wrap_list = [your_string]
#Now create the deque
d = deque(wrap_list)
Конечно, вы можете сделать все за один шаг:
your_string = 'string'
d = deque([your_string])
Ответ №2:
deque([my_string])
Комментарии:
1. Вы знаете, есть ли способ сделать это с помощью другой переменной, вместо того, чтобы помещать строку непосредственно в конструктор deque?
Ответ №3:
deque принимает список элементов. Строка — это список символов, поэтому deque разбивает строку на символы. Если вы хотите добавлять целые строки за раз, вам нужно добавить строку в массив ['test1', 'test2', 'etc']
Чтобы ответить на ваш вопрос: вам нужно использовать deque(['test'])