人生苦短 我用Python
序列&索引 序列是一个用于存储多个值的连续空间,每个值都对应一个整数的编号,称为索引 序列结构主要有列表、元组、集合、字典和字符串
索引有正向递增索引,取值范围为[0,N-1] 反向递减索引,取值范围[-1,-N]
1 2 3 4 5 6 s='helloworld' for i in range (0 ,len (s)): print (i,s[i]) for i in range (-10 ,0 ): print (i,s[i])
序列的相关操作 使用“+”来实现两个同类型序列的相加操作,不会去除重复元素
序列的类型要求是相同的,但序列中元素的类型可以是不同的
使用数字n乘以一个序列,将生成一个新的序列,新序列中的内容将会被重复n次
1 2 3 4 5 6 7 8 9 10 s='hello' s1='world' print (s+s1) lst=[10 ,20 ,30 ] print (s+lst)print (s*5 )print ('-' *8 )
操作符
描述
x in s
如果x为s中的元素,结果为True,否则为False
x not in s
如果x不是s中的元素,结果为True,否则为False
len(s)
序列s中元素的个数
max(s)
序列s元素中的最大值
min(s)
序列s元素中的最小值
s.index(x)
序列s中第一次出现元素x的位置
s.count(x)
序列s中出现x的总次数
1 2 3 s='helloworld' print ('e在hello world中存在吗' ,('e' in s)) print ('e不在hello world中存在吗' ,('e' not in s))
列表
一系列的按特定顺序排列的元素组成
Python中内置的可变序列
使用[]定义列表,元素之间使用逗号分隔
元素可以是任意的数据类型
列表的创建
使用[]直接创建列表
1 2 lst=['hello' ,'world' ,99.8 ,100 ]
使用内置方法list()创建列表
1 2 3 lst=list ('hellloworld' ) lst1=list (range (1 ,10 ,2 ))
列表是序列的一种,对序列可操作的运算符、函数等均能用于列表
列表的删除
列表元素的遍历
使用遍历循环for
遍历循环for与range()函数和len()函数组合遍历
遍历循环for与enumerate()函数组合遍历元素和索引
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 lst=['hello' ,'world' ,'python' ,'html' ] for item in lst: print (item) for i in range (len (lst)): print (i,'-->' ,lst[i]) for index,item in enumerate (lst): print (index,item) for index,item in enumerate (lst,10 ): print (index,item)
列表的相关操作方法
方法
描述
lst.append(x)
在列表lst最后增加一个元素
lst.insert(index,x)
在列表lst中第index位置增加一个元素
lst.clear()
清除列表lst中所有元素
lst.pop(index)
将列表lst中第index位置的元素取出,并从列表中将其删除
lst.remove(x)
将列表lst中出现的第一个元素x删除
lst.reverse(x)
将列表lst中的元素反转
lst.copy()
拷贝列表lst中的所有元素,生成一个新的列表
列表排序
列表对象的sort()方法 对原列表中的元素进行排序,排序之后原列表中元素的顺序将发生改变
1 2 3 lst.sort(key=None ,reverse=False )
内置的sorted()函数 使用sorted()函数排序后,原列表不变,排序后产生一个新的列表对象
1 2 3 4 lst=[Cat,apple,Orange,banana] sorted (lst,key=str .lower)
列表生成式
1 2 3 4 5 6 7 8 lst=[item for item in range (1 ,11 )] lst=[item*item for item in range (1 ,11 )] import randomlst=[random.randint(1 ,100 ) for _ in range (10 )]
1 2 3 lst=[i for i in range (10 ) if i%2 ==0 ]
二维列表 二维列表也称为表格数据,由行和列组成
1 2 3 4 5 6 7 8 9 10 11 12 lst=[ ['city' ,'环比' ,'同比' ], ['北京' ,101 ,103 ], ['上海' ,101 ,103 ], ['深圳' ,101 ,103 ] ] for row in lst: for item in row: print (item,end='\t' ) print ()
列表生成一个四行五列的列表:
1 2 lst=[(j for j in range (5 )) for i in range (4 )] print (lst)
组合数据类型——元组 元组:
一系列按特定顺序排列的元素组成
Python中的不可变序列
使用()定义,元素之间使用逗号分隔
元组中的数据可以是任意数据类型
元组的创建:
使用()直接创建元组
使用内置函数tuple()创建元组
元组的删除:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 t=('hello' ,[10 ,20 ,30 ],'python' ,'world' ) print (t)t=tuple ('helloworld' ) print (t)t=tuple ([10 ,20 ,30 ,40 ]) print (t)t=tuple (range (1 ,10 )) print (t)print ('10在元组中是否存在:' ,(10 in t))print ('10在元组中不存在:' ,(10 not in t))print ('max:' ,max (t))print ('min:' ,min (t))print ('len:' ,len (t))print ('t.index:' ,t.index(1 ))print ('t.count:' ,t.count(3 ))x=(10 ) y=(10 ,) print (x,type (x))print (y,type (y))
元组与列表的区别
列表
元组
可变序列
不可变序列
append(),inset(),remove(),pop()等方法实现添加和删除列表元素
没有这几个方法,无法实现添加删除和修改元素等操作
支持切片访问和修改列表中的元素
支持切片访问元素,不支持修改操作
访问和处理速度慢
访问处理速度快
不能作为字典的键
可以作为字典的键
组合数据类型——字典
使用{}直接创建字典
1 d={key1:value1,key2:value2......}
使用内置函数dict()创建字典
1 2 3 4 zip (lst1,lst2)dict (key1=value1,key2=value2......)
demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 d={10 :'cat' ,20 :'dog' ,30 :'pet' ,20 :'zoo' } print (d)lst1=[10 ,20 ,30 ,40 ] lst2=['cat' ,'dog' ,'car' ,'zoo' ] zipobj=zip (lst1,lst2) print (zipobj) print (list (zipobj)) d=dict (zipobj) print (d)d=dict (cat=10 ,dog=20 ) print (d)t=(10 ,20 ,30 ) print ({t:10 })lst=[10 ,20 ,30 ] print ({lst:10 })