python数据结构常用函数

ListFunction

# 声明方式
a=[1,2,3,4,5,6]
# 访问
print(a[0],a[1],a[-1],a[-2])
# 切片:a[x:y]x表示开始位置,不写默认为0(包含).y表示结束位置,不写默认为-1(不包含)
print(a[2:5])
# 尾部添加
a.append(1)
print(a)
# 统计目标元素的个数
print(a.count(1))
print(a.index(1))
# 插入
a.insert(0,9)
# 删除(下标)
a.pop(1)
# 删除(元素)如果有相同的,弹出前面的
a.remove(1)
# 排序
a.sort()
# 倒序
a.reverse()
# 内置函数
b=list(range(1,10,2))
def f(x):
    return x%2!=0and x%3!=0
def f1(x):
    return x*x*x
c=list(filter(f,range(0,10)))
d=list(map(f1,range(1,10)))

# 初始化二维数组的方法
b = [[0]*5 for _ in range(5)]

SetFunctoin

# 声明
s=set('abab')
print(s)
# 添加(整个添加)
s= set()
s.add('abab')
print(s)
#添加(分开添加)
s= set()
s.update('abcc')
print(s)
#移除
s.remove('a')
print(s)
#清空
s.clear()
print (s)

DictionaryFunction

a={1:"a",2:"b",3:"c"}
print(a[2])
# 删除KEY
a.pop(1)
print(a)
# 删除最后一对
a.popitem()
print(a)
# 查询1是否在字典中
if 1 in a:

StringFunction

str1="this is test"
str2="hello world"
# 首字母大写
print(str1.capitalize())
# 大写
print(str1.upper())
# 小写
print(str1.lower())
# 查找,返回位置索引。如果没有,返回-1
print(str1.find("is"))
# 替换
print(str2.replace("world","beautiful"))
# 把字符串切割成列表
a=str1.split(" ")
print(a)

TupleFunction

a=[1,2,3,4,5,6,7,8,9]
b=(1,2,3,4,5,6,7,8,9)
a[1]=1
b[1]=1
print(a,b)
# 元组是常量的LIST

heapqt

python没有可以直接使用的大顶堆。但是我们可以给列表中的元素加上负号,使其变成小顶堆,再在取数的时候再将其添加负号,就将小顶堆变成了大顶堆。

# heapqt提供了对应堆的支持,构建的是小顶堆
from heapq import *
my_data = [7,6,3,2,9,0,1,5,4]
# 将list转换为堆
heapify(my_data)
# 添加一个元素,堆自动调整,继续满足小顶堆
heappush(my_data,0.5)
# 弹出堆中最小元素(即堆顶元素)
print(heappop(my_data)) # 0
# 弹出堆顶元素,同时压入一个元素
print(heapreplace(my_data,4.5)) # 0.5
# 返回堆中最大的n个元素
print(nlargest(3,my_data)) # [9, 7, 6]
# 返回堆中最小的n个元素
print(nsmallest(3,my_data)) # [1, 2, 3]

& 与 (都是1时,结果才为1| 或  (只要有1,那么就是1^ 异或 (只要一样结果就是0)

统计X的二进制形式中1的个数:
ones=0
while x>0:
	x=x&(x-1)
	ones+=1
return ones

其他

排序

a=sorted(iterable,key=lambda x:x[1],reverse=False升序(默认))

对数组的排序

a=[[1,2],[2,3],[8,0],[9,4],[1,4]]
a=sorted(a,key=lambda x:x[1])

对字典的排序

hash={"a":1,"b":3,"c":4,"z":9,"e":6,"f":7}
b=sorted(hash.items(),key=lambda x:x[0])
print(dict(b))

输入输出:

import sys
# 接收第一行,以字符串的形式返回。
a=input()
# 循环接收,主要这里的line是字符串
for line in sys.stdin:
	#以空格为分割并删除回车
    a = line.split()
	#删除回车
	a=line.strip()
	#删除回车并以“,”分割
	a=line.strip().split(",")

把字母转化ASCll

c=ord('a')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值