一.说明
说明一下,博主平时使用的是python和C两种语言,鉴于python使用比较少,这里就简单对python基础部分做一个笔记,把平时使用少和比较容易忘记的知识点做一个简单总结。
二.数据结构之列表
6.1结构函数
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 列表创建
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 列表结构的基本操作
注意:列表是一种可变序列,包括增删改减等操作,而不可变序列是没有这种操作的。
6.5 列表结构的排序操作
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 列表生成
列表生成表达式(创建加强版):
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 元组的创建与删除
对照列表进行学习
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 元组生成表达式
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 元组与列表的区别
补充:因为列表是·可变序列,所以他不能作为字典的键;而元组不可变,所以可以。
四.数据结构之字典
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字典元素的访问与遍历
#字典元素的访问 #(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集合的基本知识
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集合的操作符运算
集合经过操作符运算后结果仍然是集合
9.3集合的相关操作
9.4组合数据类型的总结
六.说明
这是之前学习python数据结构的学习笔记的导入,很多都是图片,可以复习使用。