内置数据结构分类:
数值型
int , float , complex , bool
序列对象
字符串 str
列表 list
tuple(元组)
键值对
集合 set
字典 dict
数字型
列表 list()
列表是可变的,连续的(sequence),可以进行索引的,线性数据结构,可迭代的数据结构
区分:
list列表: 查找快...但是从修改(增/删)的时候,很麻烦很慢
link链表: 查找慢...但是修改快,查找很慢
queue(队列): 先进先出~
stack(栈): 先进后出,后进先出(堆栈)
列表list定义: 初始化
list() ->new empty list
list(iterable) -> new list initialized from iterable's items
list不能一开始就定义大小
lst = list()
lst = []
lst = [2,5,6,'ab']
lst = list(range(5))
索引 index: 也叫下标,从0️开始
列表查询方法:
1.L.index(valve,[start,stop])
2.count(valve)
len():输出列表的长度
列表元素修改
索引访问修改 ,索引不要超界
list[index] = valve
列表增加,插入列表
返回None意味着没有新的列表产生,就地修改
1.L.append(object) -> None
2.L.insert(index,object) -> None
3.L.extend(iterable) -> None
返回 list ,意味着产生了新的list
1. + -> list
2. * -> list
x = [[1,2,3]] * 3
print(x)
x[0][1] = 20
print(x)
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
[[1, 20, 3], [1, 20, 3], [1, 20, 3]]
y = [1] * 5
y[0] = 6
y[1] = 7
print(y)
[6, 7, 1, 1, 1]
列表删除元素
1. L.remove(valve) -> None
2. L.pop([index]) -> item
3. L.clear() -> None
其它列表操作
1. L.reserve() -> None
2. L.sort(key=None,reserve=Flase) -> None
3. in , not in
列表复制
L.copy() -> List
1.浅拷贝shadow copy:
影子拷贝,也叫浅拷贝,遇到引用类型,只是复制了一个引用而已
lst0 = [1,[2,3,4],5]
lst5 = lst0.copy()
lst5[1][1] = 20
print(lst5)
print(lst0)
[1, [2, 20, 4], 5]
[1, [2, 20, 4], 5]
2.深拷贝deepcopy
copy模块提供了deepcopy
import copy
lst0 = [1,[2,3,4],5]
lst5 = copy.deepcopy(lst0)
lst5[1][1] = 20
lst5 ! == lst0
print(lst5)
print(lst0)
[1, [2, 20, 4], 5]
[1, [2, 3, 4], 5]
随机数 random模块
1. random.randint(a,b) -> item
2. random.randrange([start],stop,[step]) -> item
3. random.choice() -> item
4. random.shuffle(list) -> none
5. random.sample(population,k) -> list
random.sample(['a','b','c','d'],2)
random.sample(['a','b'] ,2
元组
一个有序的元素组成的集合
使用小括号()表示
元组是不可变对象
元组的定义 初始化
定义:
tuple() -> empty tuple
tuple(iterable) -> tuple initialized from iterable's items
t = tuple()
t = ()
t = tuple(range(1,7,2)) 可迭代对象
t = (1,) # 一个元素元组的定义,注意要有个逗号
t = (1,) * 5
t = (1,2,3) * 6
元组元素的访问
元组查询
1.t.index(valve,[start,stop])
2.count(valve)
元组不可变,只读,所以没有增,删,改的方法
命名元组namedtuple
namedtuple(typename,field_names,verbose= False,rename=False)
from collections import namedtuple
point = namedtuple("_point",["x", "y"]) # point为返回的类
p = point(11,22)
Exp:
form collections import namedtuple
Student = namedtuple("Student","name age")
tom = Student("tom",20)
jerry = Student("jerry,18")
tome.name