python的数据结构包括_Python基础【数据结构:列表 | 元组 | 集合 | 字典】

序列

序列是Python中最基本的数据结构。

包括字符串,列表,元组,Unicode字符串,buffer对象,xrange对象。

序列中的每个元素都分配一个数字,即它的索引

第一个索引是0,第二个索引是1,依此类推。

列表和元组

列表

一个方括号内的逗号分隔值

列表中可以存放不同的数据类型。

例:[1,1.2,True,'str',[2,False]]

元组

与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

例:(1,1.2,True,'str',[2,False])

列表和元组的定义

列表的定义

一个方括号内的逗号分隔值

列表中可以存放不同的数据类型。

例:

list_define=[1,1.2,True,'str',[2,False]]

list_define=[] ##定义空列表

元组的定义

与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组中只包含一个元素时,需要在元素后面添加逗号

例:

tuple_define=(1,1.2,True,'str',[2,False])

tuple_define=() ##定义空元组,元组中只有一个元素时需加上逗号

列表和元组的特性

索引

list[0] ##list中的第一元素

list[-1] ##list中的最后一个元素

list[:] ##返回包含list中的所有元素的列表

list[1:] ##返回包含list中从第二个元素开始的所有元素的列表

list[:2] ##返回包含list中倒数第二个元素及之前的元素的列表

list[::-1] ##返回包含list中倒序元素排列的列表

切片

list[0] ##list中的第一元素

list[-1] ##list中的最后一个元素

list[:] ##返回包含list中的所有元素的列表

list[1:] ##返回包含list中从第二个元素开始的所有元素的列表

list[:2] ##返回包含list中倒数第二个元素及之前的元素的列表

list[::-1] ##返回包含list中倒序元素排列的列表

重复

list*2 ##返回两遍list

连接

list1 + list2 ##拼接list1和list2,返回拼接后的列表

嵌套

list[4][0] ##第五个元素[2,False]中的第一个元素

成员操作

a in list ##a存在于list中返回True,否则返回False

a not in list ##a不存在于list中返回True,否则返回False

迭代

for i in list ##遍历list中的元素

常用方法

列表的常用方法

list.attend('str') ##追加一个成员在列表list的末尾

list.extend(list2) ##追加一个list2在列表的末尾

list.insert(n,'str') ##将'str'插入列表list至索引为n的位置

list.pop(n) ##弹出(删除并返回)list中索引为n的元素

list.remove('str') ##删除list中的元素'str'

list.clear() ##清空list

del list[0] ##删除list中第一个元素并释放内存

list.count('str') ##返回元素'str'出现的次数

list.index('str',n,m) ##返回索引值在n~m之间元素第一次出现'str'的索引值

list.sort(reverse=True) ##返回按照ASCII排序的列表

list.sort(key=str.lower) ##返回按照小写字母排序的列表

list.reserse() ##逆序排列列表list,无返回值

list.copy() ##复制整个列表到新的内存地址中去并返回list

min,*middle,max = list ##返回首个,除去首尾的列表,和末尾的三个值

元组的常用方法

tuple.index(a) ##返回a在tuple中第一次出现的索引值

tuple.count(a) ##返回a在tuple中出现的次数

由于元组属于不可变数据类型,因此不具有增删改插的方法

常见应用

交换变量值

a = 1

b = 2

a,b = b,a

批量赋值

a,b,c=(1,2,3)

计分器

scores =[100,90,80,70,60]

scores = sorted(scores)

min,*middle,max = scores

集合

集合(set)是**一个无序的不重复元素序列**。

可以使用大括号 { } 或者 set() 函数创建集合

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

定义

set = {1,2,3}

set = {[]}

成员操作符

s in set ##s存在于set返回True,否则返回False

s not in set ##s不存在于set返回True,否则返回False

迭代

for i in set: ##利用i遍历set里的成员

for i,v in enumerate(set) ##i遍历(索引),v遍历成员

方法

set.add(s) ##添加s到set集合中返回添加后的集合

set.pop(s) ##删除set集合中的s返回删除的元素(默认第一个)

set.remove(s) ##删除set集合中的s,无返回值,set中不存在s会报错

set.discard(s) ##删除set集合中的s,无返回值

并集

set1.union(set2) ##返回set1和set2的交集

set1|set2 ##同上

交集

set1&set2 ##返回set1和set2的交集

set1.isdisjoint(set2) ##set1和set2相交返回True,否则返回False

差集

set1-set2 ##返回set1和set2的差集

set1.difference(set2) ##同上

对等差分

set1^set2 ##返回set1和set2的对等差分

set1.symmetric_difference(set2) ##同上

子集和超集

set1.issubset(set2) ##set1是set2的子集返回True,否则返回False

set1.issuperset(set2) ##set1是set2的超集返回True,否则返回False

字典

key-value 键值对应存储的一种数据结构

序列是以连续的整数为索引,字典以关键字为索引

关键字可以是任意不可变类型,通常用字符串或数值。

理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中

定义

一对大括号创建一个空的字典:{}

dict =

{

'key1':value1,

'key2':value2,

'key3':value3

}

{}.fromkeys({key1,key2},'str') ##{}.fromkeys()第一个参数可以是list/tuple/str/set,所有key的value值一致

d = dict(key1=value1,key2=value2) ##工厂函数定义

嵌套

d =

{

'key':

{

'key01':value1,

'key02':value2,

'key03':value3

}

}

字典特性

字典不支持索引/切片/重复/连接

成员操作符判断的是字典中的key

for循环默认遍历字典的key值

可通过传递key值遍历字典的value值

增加元素

d['key']=value ##key存在则更新,否则增加新的key-value对

dict2 ={

'key1':value1,

'key2':value2

}

d.update(dict2) ##将dict2的key-value对加入d中

d.update(key1=value1,key2=value2) ##增加多个key-value对,这里key只支持str类型

d.setdefault(key,value) ##如果key存在则不改变,否则增加新的key-value对

删除元素

del d['key'] ##删除对应key的key-value值

d.pop('key') ##删除对应key的key-value值,返回对应的value值

d.popitem() ##默认删除最后一个key-value值,返回对应的value值

d.clear() ##清空字典

查看和修改

d.keys() ##显示d中的keys

d.values() ##显示d中的values

d.get('key',0) ##存在key返回对应value,不存在返回0

迭代

for i,v in d.items():

print(i,'---->',v)

for i in d:

print(i,'---->',d[i])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值