Python中的Deque

Python中的Deque(双端队列)是使用以下模块实现的: 收藏 “.Deque比a更受欢迎 列表 在需要从容器两端进行更快的追加和弹出操作的情况下,deque提供了 O(1) 与提供O(n)时间复杂度的列表相比,追加和弹出操作的时间复杂度。

null

例子:

Python3

# Python code to demonstrate deque
from collections import deque
# Declaring deque
queue = deque([ 'name' , 'age' , 'DOB' ])
print (queue)


输出:

deque(['name', 'age', 'DOB'])

让我们看看deque上的各种操作:

  • 附加() :-此函数用于 插入 其参数中的值 右端 德克家族的。
  • 附录左() :-此函数用于 插入 其参数中的值 左端 德克家族的。
  • pop() :-此函数用于 删去 来自政府的争论 右端 德克家族的。
  • popleft() :-此函数用于 删去 来自政府的争论 左端 德克家族的。

Python3

# Python code to demonstrate working of
# append(), appendleft(), pop(), and popleft()
# importing "collections" for deque operations
import collections
# initializing deque
de = collections.deque([ 1 , 2 , 3 ])
# using append() to insert element at right end
# inserts 4 at the end of deque
de.append( 4 )
# printing modified deque
print ( "The deque after appending at right is : " )
print (de)
# using appendleft() to insert element at left end
# inserts 6 at the beginning of deque
de.appendleft( 6 )
# printing modified deque
print ( "The deque after appending at left is : " )
print (de)
# using pop() to delete element from right end
# deletes 4 from the right end of deque
de.pop()
# printing modified deque
print ( "The deque after deleting from right is : " )
print (de)
# using popleft() to delete element from left end
# deletes 6 from the left end of deque
de.popleft()
# printing modified deque
print ( "The deque after deleting from left is : " )
print (de)


输出:

The deque after appending at right is : deque([1, 2, 3, 4])The deque after appending at left is : deque([6, 1, 2, 3, 4])The deque after deleting from right is : deque([6, 1, 2, 3])The deque after deleting from left is : deque([1, 2, 3])
  • 索引(ele、beg、end) :-这个功能 返回值的第一个索引 在辩论中提到, 自始至终都在寻找 指数
  • 插入(i,a) :-这个功能 插入值 在论点(a)中提到 at索引(i) 在参数中指定。
  • 删除() :-这个功能 删除第一个匹配项 在论点中提到的价值。
  • 计数() :-这个功能 统计发生的次数 在论点中提到的价值。

Python3

# Python code to demonstrate working of
# insert(), index(), remove(), count()
# importing "collections" for deque operations
import collections
# initializing deque
de = collections.deque([ 1 , 2 , 3 , 3 , 4 , 2 , 4 ])
# using index() to print the first occurrence of 4
print ( "The number 4 first occurs at a position : " )
print (de.index( 4 , 2 , 5 ))
# using insert() to insert the value 3 at 5th position
de.insert( 4 , 3 )
# printing modified deque
print ( "The deque after inserting 3 at 5th position is : " )
print (de)
# using count() to count the occurrences of 3
print ( "The count of 3 in deque is : " )
print (de.count( 3 ))
# using remove() to remove the first occurrence of 3
de.remove( 3 )
# printing modified deque
print ( "The deque after deleting first occurrence of 3 is : " )
print (de)


输出:

The number 4 first occurs at a position : 4The deque after inserting 3 at 5th position is : deque([1, 2, 3, 3, 3, 4, 2, 4])The count of 3 in deque is : 3The deque after deleting first occurrence of 3 is : deque([1, 2, 3, 3, 4, 2, 4])
  • 扩展(可扩展) :-此函数用于 在右端添加多个值 德克家族的。通过的论点是站不住脚的。
  • 可扩展的(可扩展的) :-此函数用于 在左端添加多个值 德克家族的。通过的论点是站不住脚的。 顺序颠倒了 由于左附肢。
  • 反向 :-此函数用于 颠倒顺序 德克元素。
  • 轮换 :-这个功能 旋转三角形 按参数中指定的数字。 如果指定的数字为负数,则向左旋转。否则旋转就是向右。

Python3

# Python code to demonstrate working of
# extend(), extendleft(), rotate(), reverse()
# importing "collections" for deque operations
import collections
# initializing deque
de = collections.deque([ 1 , 2 , 3 ,])
# using extend() to add numbers to right end
# adds 4,5,6 to right end
de.extend([ 4 , 5 , 6 ])
# printing modified deque
print ( "The deque after extending deque at end is : " )
print (de)
# using extendleft() to add numbers to left end
# adds 7,8,9 to left end
de.extendleft([ 7 , 8 , 9 ])
# printing modified deque
print ( "The deque after extending deque at beginning is : " )
print (de)
# using rotate() to rotate the deque
# rotates by 3 to left
de.rotate( - 3 )
# printing modified deque
print ( "The deque after rotating deque is : " )
print (de)
# using reverse() to reverse the deque
de.reverse()
# printing modified deque
print ( "The deque after reversing deque is : " )
print (de)


输出:

The deque after extending deque at end is : deque([1, 2, 3, 4, 5, 6])The deque after extending deque at beginning is : deque([9, 8, 7, 1, 2, 3, 4, 5, 6])The deque after rotating deque is : deque([1, 2, 3, 4, 5, 6, 9, 8, 7])The deque after reversing deque is : deque([7, 8, 9, 6, 5, 4, 3, 2, 1]) 

本文由 曼吉星 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享