1.Number类型
int,float,complex
运算符号:+ - * / // %(其中//是整数除)
函数:abs(),max(x1,x2,...),min(),pow(x,y),math.sqrt(x)
2.List列表
查找:a[0]
增加:a.append()
修改:a[0] = 9
删除:a.pop(index)返回删除的值 a.pop()不加索引默认返回最后一个值
常用函数:len(a),max(a),min(a),a.reverse(),a.clear()
切片操作
迭代遍历:
(1) for x in a:
print(x)
(2) for i in range(len(a)):
print(a[i])
列表表达式:
b = [i*i if i>3 else i for i in a]
和数字乘:
c = [0]*5 ===> c = [0,0,0,0,0]
3.Tuple元组
小括号括起来,只能查,不能增删改
常用函数:len(),max(),min()
切片操作
迭代遍历,同List
4.Set集合
a = {1,1.5,"abc"},大括号括起来
元素唯一,无序
增加:a.add(2),a.update({4,5})
删除:a.remove(1.5)
函数:len,max,min
集合运算:
a - b: 差集
a | b: 并集
a & b: 交集
a ^ b: a和b不同时有的元素
5.Dictionary字典
查找:dict[key]返回对应的value
增加:dict[newkey] = newvalue
修改:dict[key] = newvalue
删除:dict.pop(key)
遍历:
(1) 遍历key
for key in dict:
print(key)
(2) 遍历value
for value in dict.values():
print(value)
(3) 遍历key和value
for k,v in dict.items():
print(k,v)
6.String字符串
s = "hello world"
查找:s[0] = 'h';s[-1] = 'd'
切片操作同list
常用函数:len(s),max(s),min(s);s.count('h')返回多少个'h',
s.isupper(),s.islower(),s.isdigital(),s.lower(),s.upper(),
s.strip()去空格,s.lstrip()去左边的空格,s.rstrip(),
s.swapcase()大写转小写,小写转大写,
s.replace(old,new),
s.split(str)以str符号来分割原有的字符串并返回一个列表
7.Array数组
用List来表示
8.Linkedlist链表
class ListNode:
def _init_(self,x):
self.val = x
self.next = None
9.Hash Table哈希表
用Dictionary实现
10.Queue队列
1)可以用List来模拟,append()在尾部添加元素,pop(0)弹出第一个元素。但比较麻烦的是在
pop后,List底层实现的时候后面的元素会依次向前移动一个位置,比较费时。
2)利用内置的deque这个双端队列的结构:from collections import deque
常用的函数示例:q = deque([1,2,3])
q.append(4) #在尾部添加元素
q.pop() #弹出尾部的元素
q.appendleft(9) #在头部添加元素
q.popleft() #弹出头部的元素
11.Stack栈
1)也可以用deque来实现
2)用list更方便,因为不需要像queue一样移位
12.Heap堆(java中叫做优先队列)
from heapq import heapify,heappush,heappop,nlargest,nsmallest
a = [10,2,3,1,7]
heapify(a) #将列表变成小堆,并不会返回什么,是在列表本身上操作的
print(a)
heappush(a,4)
print(a)
heappop(a)
print(a)
print(nlargest(2,a)) #返回a中最大的两个值
print(nsmallest(3,a)) #返回a中最小的两个值
[注]:最大堆的时候,将列表a中的每个元素乘-1,再用最小堆做,最后再还原
13.Tree树