dthy
@dthy (dorrrothy)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

python dequeについて

解決したいこと

キューに入っている先頭の要素を変数に代入したい

発生している問題・エラー

TypeError: pop() takes no arguments (1 given)

該当するソースコード

from collections import deque
d = deque()
d.extend([1,2,3,4,5])
x = d.pop(0)
print(x)

対話型だとこのコードでもできるのですが
そうじゃないとできないのはなぜなんでしょう。

0

1Answer

Python 2.7, 3.5〜3.9 で deque.pop() は引数を取らないメソッドですのでエラーが出るのが正しい挙動です。対話型だとできるというのは具体的にどう実行したのでしょうか?

0Like

Comments

  1. @dthy

    Questioner

    d
    Out[33]: deque([[1, 2, 3], [3, 2, 1]])
    a,b,c = d.pop()
    a
    Out[35]: 3
    b
    Out[36]: 2
    c
    Out[37]: 1
    質問内容と違いますがこれは大丈夫でした
  2. それは `.pop()` に引数を渡していないので動きますね。
  3. @dthy

    Questioner

    なるほど!普段、リストに対しpop(0)を使っていたので
    同じように動くと勝手に思ってました。ありがとうございます。助かりました
  4. 解決したいことをスルーしてしまったのであらためて答えますと、先頭要素を取り出すには引数なしで `.popleft()` を呼びます。 `.pop()` が取り出すのは末尾要素です。

Your answer might help someone💌