一般把list\tuple\set\dict叫做容器
一种数据结构,用来存放大量数据的容器
数组概念 Python中是没有数组概念
一、列表(list)
1、什么是列表:
Python底层基于双向链表的实现
链表是一种线性表,由大量的节点组成,每一个节点都可以存储数据
1)数组:(内存是连续)
2)栈:(后进先出)
3)队列:(先进先出)
4)链表:对数组的补充存在的
列表就可以存储大量的数据
2、python中如何使用列表,定义列表
1)调用系统的一个全局函数 list
a = list() #创建了一个空列表
a = list([n1,n2,...nn]) #创建列表,并赋值
2)可以利用弱数据语言语言的特点来创建列表
b = [1, 2, 3, 4, 11]
3、如何访问列表中的元素
通过下标(在编程中,99%技术或者语言,下标都是从0开始计数)
一定注意:下标不要越界,会报错
重新赋值:
列表[下标] = 新值
ls[3] = 50 #相当于将ls list的第四个值重新赋值为50
4、遍历元素
for 变量 in 容器:
变量代表容器中的一个确定的元素
5、列表的长度问题
怎么判断一个列表有多少元素
全局函数len
使用while循环遍历:
index = 0
while index < len(a):
print(a[index])
index += 1
列表本质是一个对象:
想扩展列表:提供了大量的列表的方法,调用就可以完成需要的功能!
6、列表的常用方法:
1)append #能够在列表末尾添加新的元素
a = [1,2,3,4,5,6,100]
a.append(200)
#查看a
len(a) #求容器长度
a[6]
>>>200
2)clear #清除列表中的所有元素
a.clear()
3)copy #复制列表(浅拷贝)
a.copy()
>>>[1,3,4,5,6,100]
aa = a.copy()
a
>>>[1,3,4,5,6,100]
注意:aa = a.copy() 与引用传递 bb = a 的区别
4)count #统计某个元素在列表中的个数
5)index #查询元素在列表中的第一次出现的下标位置
a.index(1)
a.imdex(100) #注意,如果列表中不存在该元素,则抛出异常
6)insert #指定要插入的元素位置
help(a.insert)
a = [1,2,3,4,5]
a.insert(2,"haha")
>>>a
>>>[1,2,"haha",3,4,5]
7)remove #移除对应的元素 注意:如果列表中不存在该元素,则抛出异常
a = 10
if a in list:
list.remove(a)
8)pop #通过下标,移除元素。 注意:没有下标时,删除最后一个
9)reverse #翻转元素的顺序
10)sort #排序(主要针对数字)
b = [10,-20,200,22]
b.sort()
>>>[-20,10,22,200]
11) extend #扩展列表,用来合并多个列表
a.extend(b)
Second, the collection (set) can not have duplicate values
1、使用全局函数 set()
s = set()
2、使用{} 注意:如果没有初始化的值,不要直接使用{}反向定义,默认是dict
s = set({1,2,3,4,5})
3、特点:元素唯一,不允许重复,无序的
4、set的常用方法:
1)add #添加
ss.add(100)
2)clear #清除
3)copy
4)difference #求差集
s = {1,4,100,9}
ss = { 2,4,8}
s.difference(ss)
>>>{1,100,9}
ss.difference(s)
>>>{2,8}
5)discard #移除元素,如果存在,不存在也不会抛出异常
ss.discard(1000)
6)intersection #交集
7)pop #随机移除一次
8)remove #移除元素
ss.remove(100)
9)union #并集
注意:在python中,{}不一定就是set,也有可能是dict;
Three tuple (tuple)
表示的是固定的,不变的值
1、定义元组:
1)t1 = tuple((1,3,4,5))
2)t2 = (1,3,5,5,7)
元组也是通过下标访问!!!
2、常用方法:
1、count #统计元素个数
2、index #查找索引位置
**注意1:**元组是不可变类型,意味着当元组中的值定义好之后,再无法修改
但是注意,如果元组的元素是可变类型,那么该元组是可变的。
t1 = (1,2,3,4,[1,2,3],5,6)
t1[4]
>>>[1,2,3]
type(t1[4])
>>><class 'list' >
t1[4].append(10000)
t1
>>>(1,2,3,4,[1,2,3,10000],5,6)
**注意2:**在定义元组时,如果只有一个元素,那么一定要在该元素后加个逗号,否则python解释器会将
该元素当成一个数字对待(圆括号就是数学上的含义)
a = (1)
type(a)
b = (1,)
type(b)
Fourth, the dictionary (dict)
python中的字典类型,key必须是字符串!!!
1、定义:
1){}
2){“name": "xxx", "age": 16 }
3)dict( {“name": "xxx", "age": 16 } )
2、访问元素:
d[key]
d[key] = 新值 #如果key不存在,新增这个键值对
3、常用的方法:
1)clear
2)copy
3)fromkeys #通过一个可迭代的对象(Iterable),能够被for in 循环迭代每一个元素
4)get #通过该键获取对应的值,如果没有这个key,返回None
5)items #成对返回键值对
在迭代时使用!!!
6) keys #返回所有的key对应的值
7) pop #通过key,删除对应的键值对,如果该键不存在,则抛出异常
d2.pop("name")
8) popitem #移除一个键值对,按照后进先出LIFO的规则
9) setdefault
10) update
11)values
4、字典的迭代:
1、第一种:
for k in d2:
print(k, d2[k])
2、第二种:
for key in d2.keys():
print(k, d2[k])
3、第三种:
for k,v in d2.items():
print(k,v)
LIFO:后进先出 栈
FIFO:先进先出 列表