Как напечатать элемент перед очередью python 3?


    import queue
    q = queue.Queue()
    q.put(5)
    q.put(7)

print (q.get ()) удаляет элемент в начале очереди. Как распечатать этот элемент, не удаляя его? Возможно ли это сделать?

Если вы не используете свою очередь в качестве механизма межпоточного взаимодействия, вам следует использовать collections.deque, а не queue.Queue. Если вы используете свою очередь для обмена данными между потоками, то операция просмотра редко бывает полезной или безопасной для таких случаев использования, и вам следует тщательно подумать, нужно ли вам это.

user2357112 supports Monica 10.11.2018 01:39
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
9 239
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У объекта Queue есть атрибут объекта collections.deque. См. Документацию Python по доступу к элементам двухсторонней очереди с точки зрения эффективности. Список может быть лучшим вариантом использования, если вам нужно получить доступ к элементам случайным образом.

import queue

if __name__ == "__main__":
    q = queue.Queue()
    q.put(5)
    q.put(7)

    """
    dir() is helpful if you don't want to read the documentation
    and just want a quick reminder of what attributes are in your object
    It shows us there is an attribute named queue in the Queue class
    """
    for attr in dir(q):
        print(attr)

    #Print first element in queue
    print("\nLooking at the first element")
    print(q.queue[0])

    print("\nGetting the first element")
    print(q.get())

    print("\nLooking again at the first element")
    print(q.queue[0])

Примечание: я сократил вывод итератора dir

>>>
put
put_nowait
qsize
queue
task_done
unfinished_tasks

Looking at the first element
5

Getting the first element
5

Looking again at the first element
7
>>>

Другие вопросы по теме