Как добавить строку в deque, не разбивая строку на символы?

#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'])