python数据结构基础总结

简介: python数据结构基础总结

一.说明

说明一下,博主平时使用的是python和C两种语言,鉴于python使用比较少,这里就简单对python基础部分做一个笔记,把平时使用少和比较容易忘记的知识点做一个简单总结。

二.数据结构之列表

6.1结构函数

c355daec7e2bf880e80d7a879a8ee6d5.png

s='helloeord'
print('o' in s)
print('x' not in s)
print(len(s))
print(max(s))
print(min(s))
print(s.index('o'))
print(s.count('o'))

6.2 列表创建

fa3b23fdb7fedddf19185116bc39afc5.png

lst=['hello','word',99.8,100]
lst2=list('helloword')
lst3=list(range(1,10,2))
print(lst+lst2+lst3)

6.3 列表的遍历

三种列表遍历的方式:

lst4=['hong','ze','lin','ai','li']
for i in lst4:
    print (i)                             #1   for循环遍历
for m in range(len(lst4)):
    print(m,'---->',lst4[m])              #2   for循环配索引结构遍历
for index,x in enumerate(lst4):
    print(index,x)                        #3   for循环enumerate函数

6.4 列表结构的基本操作

52d2d479e1e340bdf7f5c49036549018.png

注意:列表是一种可变序列,包括增删改减等操作,而不可变序列是没有这种操作的。

6.5 列表结构的排序操作

cbbac967d137d38ec4a8ab7a03bf8b59.png


lst4=['hong','ze','lin','ai','li']
lst5=[3,6,89,2002,10,12,61,520,1314]
lst5.sort()                               #默认是升序
print (lst5)
lst5.sort(reverse=True)                   #降序排列
print(lst5)
lst4.sort(key=str.lower)                  #忽略大小进行比较,按字母顺序排序
print(lst4)
asc_lst=sorted(lst5)
print(asc_lst)
disasc_lst=sorted(lst5,reverse=True)
print(disasc_lst)
'''
上面两种方法中,第一种是把排序后的序列覆盖在原序列上,
而第二章方法相当于建立一个新序列,把排序好的序列放入其中,原序列没有变
'''

6.6 列表生成

列表生成表达式(创建加强版):

b6adb49ccfa48f445ad77459eca34812.png

import random                           #声明random函数
lst10=[item for item in range(10)]      
print(lst10)
lst11=[item*item for item in range(10)]     #[]里面第一部分为元素表达式
print(lst11)
lst12=[random.randint(1,100) for _ in range(10)]    #在1到100里面随机产生10个数构成数组
print(lst12)
lst13=[i for i in range(10) if i%2==0]
print(lst13)

6.7 二维列表

二维列表也就是表格数据,由行与列组成

lst15=[
    ['姓名','年龄','序号'],
    ['李恒馨','21','001'],
    ['蔡甜甜','22','002']
]
print(lst15)
for row in lst15:
    for item in row:
        print(item,end='\t')
    print()
#建一个四行五列的二维表格(生成表达式)
lst16=[[j for j in range(5)] for i in range(5)]
print(lst16)

三.数据结构之元组

6.1 元组的创建与删除

5e96ecc6c8e7b83c573ba0a84a6f2f5d.png

对照列表进行学习

t1=('李恒馨','python',520,1314)
print(t1)
t2=tuple([1314,520,888])
print(t2)
#当元组只有一个元素是,我们可以在元素后面加一个逗号来强调他是一个元组
x=(520)
print(x,type(x))
x=(520,)
print(x,type(x))

删除元组时,与列表一样都用del删除。

注意:元组也是序列里面的一种,所以6.1的结构函数对元组同样有用。

6.2 访问元组与遍历元组

切片结构: 开始位置:结束位置:步长

元组访问根据索引结构单个访问。

遍历元组与遍历列表方法一样,三种。

6.3 元组生成表达式

3a7abe0c102894b6a9e77043ae25a9c2.png

t=(i for i in range(10))    #与列表不同,这里结果是一个生成器对象,需要再进行操作
print(t)
t=tuple(t)                    #第一种方式
print(t)
for item in t:                #第二种方式
    print(item)
print(t.__next__())           #第三种,但它每一次只读取t的一个数
print(t.__next__())

注意:三种方法不共存,在一起会报错。

6.4 元组与列表的区别

6a9f11e334c3d7a9da3431b492e293f7.png

补充:因为列表是·可变序列,所以他不能作为字典的键;而元组不可变,所以可以。

四.数据结构之字典

8.1字典的基本知识

键值对:表示索引用的键和对应的值构成的对应关系。

键值对的结构: key:value

字典的特征:

(1)通过键来获取字典中指定的项,而不再用索引结构来获取

(2)字典本身是无序的,也被称为hash表(散列表) (解释了为什么不能通过索引来获取值)

(3)字典是python中的可变序列

(4)字典的键是唯一的,如果出现多次,后面的值会覆盖前面的值

(5)字典中的键要求是不可变序列

补充:到目前所学为之,不可变序列有:字符串、整数型、浮点型、元组

8.2字典的创建

#两种创建方式
#第一种,用{ }直接创建
d={10:'cat',20:'dog',30:'pig',20:'pet',20:'zoo'}
#键值对名字一样时,后面的会覆盖前面所对应的值
print (d)
#第二种,zip函数
lst1=[10,20,30,40]
lst2=['cat','dog','pig','zoo']
zipobj=zip(lst1,lst2)         #两个列表的映射,按数学函数理解
print(zipobj)                 #结果为一个zip对象,可以把他转成元组或列表去查看
print(list(zipobj))
#第三种,使用参数来创建
d=dict(cat=10,dog=20,pig=30)         #注意:参数相当于变量,变量名不用加引号
print(d)
#利用元组做键
t=(10,20,30)
e={t:100}
print(e)

补充:字典也是序列的一种,6.1中的结构函数对字典同样使用。

8.3字典元素的访问与遍历

2790b6657a6d3b43a129e5de1bc74b26.png

#字典元素的访问
#(1)
d={'python':10,'dog':20}
print(d['dog'])
#(2)
print(d.get('dog'))
#两者之间有所区别
#print(d['java'])       #没有这个键名时,这种方法直接报错
print(d.get('java'))   #此种方法不报错而是输出none
print(d.get('java','100'))    #而且此种方法相当于可以自己添加输出
#字典的遍历
#(1)
for item in d.items():
    print(item)         #结果为key-value组成的元组
#(2)
for a,b in d.items():
    print(a,b)          #分别获取字典的键和值

注意:遍历时,for item in d 是错误的。

8.4字典的相关操作


字典是可变序列,添加元素时直接使用赋值运算符。

#字典中的相关操作
#1添加元素
x={1001:'李恒馨',1002:'秦诗韵',1003:'温可儿'}
x[1004]='沐雅柔'
print(x)
#2获取字典所有的键
keys=x.keys()    #x.keys()的结果为dict_keys,这是python中一种内部数据结构类型,专用于表示字典的键
print(keys,type(keys))
#如果想跟好的输出可以把结果转成列表或元素进行更好的输出
print(list(keys))
print(tuple(keys))
#3获取字典所有的value
values=x.values()    #结果类型为dict_values,可以同上述一样理解
print(values,type(values))
#补充,字典遍历时用到的items算法
items=x.items()      #结果类型为dict_items,可以同上述一样理解
print(items,type(items))
#4使用pop函数,先获取再删除
print(x.pop(1001))
print(x)
#5先获取一个键值对然后随机删除一个
print(x.popitem())
print(x)
#6清空字典
x.clear()
print(x)

五.数据结构之集合

9.1集合的基本知识

288811fa631adad02ae74148893b5aae.png

python集合和数学里面的集合是一样理解的,特征一样

#集合的创建
#第一种,使用{}直接创建
s={10,20,30,40}
print(s)
'''s={[10,20],[30,40]}          该行运行直接报错,因为列表是可变序列,而集合只存储不可变数据类型
print(s)
'''
#第二种,使用set()函数
x=set('helloword')
x2=set([10,20])
x3=set(range(1,10))
print(x)
print(x2)
print(x3)
s={}           #这时候系统创建的是一个空字典
print(s,type(s))
#空集合的创建
s=set()
print(s,type(s))

注意:第二种创建方式的括号里面是可迭代对象进行,粗俗理解:可以使用for循环对象

补充:集合也是序列的一种,所以6.1的结构函数也能使用

9.2集合的操作符运算

集合经过操作符运算后结果仍然是集合

06695379a07a0d26e02eef59c776161a.png

9.3集合的相关操作

f9ab35607696a6c4700231cea0f238a9.png

47f644e231965f21ad6598de9147339c.png

651d66d610371857ca7b674865b7a301.png

9.4组合数据类型的总结

8e45335c68b9b0391f04254d5e6d5191.png

六.说明

这是之前学习python数据结构的学习笔记的导入,很多都是图片,可以复习使用。

相关文章
|
2月前
|
存储 索引 Python
python中的哈希表数据结构
python中的哈希表数据结构
15 0
|
2月前
|
存储 数据挖掘 索引
python数据分析——Python语言基础(数据结构基础)
数据结构是计算机科学中一种基本概念,其目的是确定数据元素之间的关系,实现数据的组织、存储和管理。了解和掌握常见的数据结构可以让我们更好地处理和管理数据
53 1
|
20天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
68 0
|
2月前
|
算法 Python
数据结构与算法 经典排序方法(Python)
数据结构与算法 经典排序方法(Python)
25 0
|
2月前
|
Python
深入理解Python数据结构中的深浅拷贝
深入理解Python数据结构中的深浅拷贝
|
2月前
|
存储 Python
Python数据结构讲解字典
Python数据结构讲解字典
21 1
|
2月前
|
Python
Python数据结构讲解元组
Python数据结构讲解元组
17 1
|
2月前
|
存储 索引 Python
Python数据结构讲解列表
Python数据结构讲解列表
24 0
|
2月前
|
索引 Python
Python数据结构讲解集合
Python数据结构讲解集合
18 0
|
2月前
|
存储 安全 索引
Python数据结构讲解
Python数据结构讲解
10 0