Python常用STL及常用库函数

更新时间:2023-05-12 00:34:32 阅读: 评论:0

Python常⽤STL及常⽤库函数Python常⽤STL及常⽤库函数
关于python的基础知识可以参考:
/**
* str
* List
* Queue
* stk
* Deque  双端队列
* Set
* Map
* BitSet
* Pair
* 位运算
* 常⽤库函数:
*  翻转、去重、随机打乱、sort
*  lower_bound/upper_bound、nth_element
*/
字符串
print('--Hello World!--')# --Hello World!--
print("--Hello 'World'!--")# --Hello 'World'!--
print('''--'Hello' "World"--''')# --'Hello' "World"--
# 基础使⽤
print("---------------------------------------")
s ="0123456789"
print(s[0])# 获得s[0]  0
print(s[0:2])# 截取s[0, 2)的内容  01
print(s[0:5:2])# 每个两个截取s[0, 5)的内容  024
print(s[0:-1])# 最后⼀个字符被舍弃  012345678
print(s[-4:])# 截取最后四个字符  6789
print(s[-1000:100])# ⾸尾超过有效范围则取到⾸尾  0123456789
print(s[::-1])# 翻转字符串  9876543210
print(2* s)# 复制两次字符串
if"123"in s:
print("'123'在字符串s中")
el:
print("'123'不在字符串s中")
# 字符串处理函数
print("---------------------------------------")
print(len(s))# 输出s的长度  10
print(str("1.23"))
print(ord('c'))# unicode -> 数字
print(chr(8364))# 数字 -> unicode
# 字符串处理⽅法
print("---------------------------------------")
t ="One world, one dream!"
print(t.lower())# 全部转为⼩写    one world, one dream!
print(t.upper())# 全部转为⼤写    ONE WORLD, ONE DREAM!
unt("one"))# 计算某个字符换出现的次数    1
place("world","life"))# 将world全部替换为life
(30,"="))# t居中,两侧⽤=填充    ====One world, one dream!===== print(t.strip("!O"))# 从str中去掉在其左侧和右侧所列出的字符    ne world, one dream print("+".join("1234"))# 1234⽤+隔开    1+2+3+4
# 字符串格式化输出
print("---------------------------------------")
print("{0:.2f}".format(12345))# 保留两位⼩数(四舍五⼊)    12345.00
List
# list创建
s =[1,2,"hi",(2,3)]# 或者 s = list([1, 2, "hi", (2, 3)])
t =[[i + j for j in range(3)]for i in range(2)]
# 序列类型通⽤操作符
print("hi"in s)# True
print("hi"not in s)# Fal
print(s + t)# [1, 2, 'hi', (2, 3), [0, 1, 2], [0, 1, 2]]
print(2* s)# [1, 2, 'hi', (2, 3), 1, 2, 'hi', (2, 3)]
print(s[2])# hi
print(s[1:3])# 切⽚的详细信息请参考字符串    [2, 'hi']
# 序列类型通⽤函数和⽅法
print("---------------------------------------")
print(len(s))# 4
print(min(t))# 返回序列s的最⼩元素, s中元素需要可⽐较    [0, 1, 2]
print(max(t))# 返回序列s的最⼤元素, s中元素需要可⽐较    [1, 2, 3]
print(s.index(2,1,3))# 返回序列s从1开始到3位置中第⼀次出现元素2的位置,不存在产⽣ValueError异常unt(12))# 返回序列s中出现12的总次数    0
# 列表类型操作函数和⽅法
print("---------------------------------------")
lt =[]# 定义空列表lt
lt +=[1,2,3,4,5]# 向lt新增5个元素
lt[2]=6# 修改lt中第2个元素  [1, 2, 6, 4, 5]
lt.inrt(2,7)# 向lt中第2个位置增加⼀个元素  [1, 2, 7, 6, 4, 5]
del lt[1]# [1, 7, 6, 4, 5]
del lt[1:4]# [1, 5]
print(0in lt)# 判断lt中是否包含数字0  Fal
lt.append(0)# 向lt新增数字0  [1, 5, 0]
print(lt.index(0))# 返回数字0所在lt中的索引,不存在产⽣ValueError异常
print(len(lt))# lt的长度  3
print(max(lt))# lt中最⼤元素  5
for x in lt:# 遍历
print(x, end=", ")
print()
for i, x in enumerate(lt):# lt[i] = x
print(i, x)
lt.clear()# 清空lt  []
print("---------------------------------------")
t =[i for i in range(5)]# [0, 1, 2, 3, 4]
t.pop(0)# 删除列表中的头元素  [1, 2, 3, 4]
t.append(3)# 在列表的尾部添加元素3  [1, 2, 3, 4, 3]
Queue
# queue: 使⽤list模拟队列
q =[]# 定义队列
q.append(4)# ⼊队  [4]
q.append(3)# ⼊队  [4, 3]
q.append(7)# ⼊队  [4, 3, 7]
q.pop(0)# 队⾸出队  [3, 7]
print(q[0])# 获得队⾸元素  3
q.clear()# 清空队列
print(len(q))# 获取队列中元素个数  0
print(len(q)==0)# 判断队列是否为空  True
# PriorityQueue: 默认⼩顶堆,是基于heapq实现的
print("---------------------------------------")
from queue import PriorityQueue
heap = PriorityQueue()
heap.put((2,'hi'))
heap.put((1,'hello'))
heap.put((3,'world'))
print(heap.queue)# 输出堆中所有元素
print(heap.queue[0])# 输出堆顶元素, 不删除
())# 输出堆顶元素, 并删除堆顶元素
print(heap.qsize())
# python3中不能向PriorityQueue添加参数变为⼤顶堆,需要⾃⼰封装⼀个,可以参考下述⽹址
# /questions/14189540/python-topn-max-heap-u-heapq-or-lf-implement # 当做算法题使⽤到⼤顶堆是,不建议使⽤python
import heapq
class MaxHeap(object):
def__init__(lf, x):
lf.heap =[-e for e in x]
heapq.heapify(lf.heap)
def put(lf, value):
heapq.heappush(lf.heap,-value)
def get(lf):
return-heapq.heappop(lf.heap)
stk
# stk
# stk
def test3():
# python是没有栈的,我们可以列表模拟⼀个栈
stk =[]
stk.append(20)# ⼊栈
stk.append(10)
stk.append(30)
stk.pop(len(stk)-1)# 出栈
stk.clear()# 清空栈
print(len(stk))# 获取栈中元素个数  0
print(len(stk)==0)# 判断栈是否为空  True
Deque
from collections import deque
# 定义 deque
d = deque()
# 插⼊、删除元素
d.append(20)# 队尾插⼊⼀个元素  deque([20])
d.append(10)# 队尾插⼊⼀个元素  deque([20, 10])
d.pop()# 弹出⼀个尾部数据  deque([20])
d.appendleft(40)# 队⾸插⼊⼀个元素  deque([40, 20])
d.appendleft(30)# 队⾸插⼊⼀个元素  deque([30, 40, 20])
d.popleft()# 弹出⼀个队⾸数据  deque([40, 20])
# 遍历
for x in d:
print(x, end=", ")
print()
# 返回队⾸和队尾元素
print(d[0])# 队⾸元素  40
print(d[len(d)-1])# 队尾元素  20
# 清空 deque
d.clear()
print(len(d))# 0
print(len(d)==0)# True
Set
# t
def test5():
"""
有序的集合:SortedSet
⽹址:/docs/sortedcontainers/sortedt.html    """
from sortedcontainers import SortedSet
# 创建 SortedSet
ss = SortedSet([3,1,2,5,4])
print(ss)# SortedSet([1, 2, 3, 4, 5])
from operator import neg
ss1 = SortedSet([3,1,2,5,4], neg)
print(ss1)# SortedSet([5, 4, 3, 2, 1], key=<built-in function neg>)
# SortedSet 转为 list/tuple/t
print(list(ss))# SortedSet转为list    [1, 2, 3, 4, 5]
print(tuple(ss))# SortedSet转为tuple    (1, 2, 3, 4, 5)
print(t(ss))# SortedSet转为t    {1, 2, 3, 4, 5}
# 插⼊、删除元素
ss.discard(-1)# 删除不存在的元素不报错
ss.discard(3)# SortedSet([1, 2, 4, 5])
ss.add(-10)# SortedSet([-10, 1, 2, 4, 5])
# 返回第⼀个和最后⼀个元素
print(ss[0])# -10
print(ss[-1])# 5
# 遍历 t
for e in ss:
print(e, end=", ")# -10, 2, 4, 5,
print()
# t 中判断某元素是否存在
print(2in ss)# True
# bict_left() / bict_right()
print(ss.bict_left(4))# 返回⼤于等于4的最⼩元素对应的下标    2 print(ss.bict_right(4))# 返回⼤于4的最⼩元素对应的下标    3
# 清空 t
ss.clear()
print(len(ss))# 0
print(len(ss)==0)# True
"""

本文发布于:2023-05-12 00:34:32,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/885527.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:元素   列表   字符串   顶堆   队列
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图