线性结构:
一、
1、线性结构:可以迭代,for ... in;len()可以获取长度;通过下标可以访问;可以切片
2、切片:
1)、通过索引访问线性结构的一段数据;
sequence[start:stop]表示返回[start,stop],start默认为0,stop默认为末尾,支持负索引;
超过上界取末尾,超过下界取开头;
start一定要在stop左边
[:]表示从头至尾,全部元素被取出,等效于copy()方式
例:'jasdfajddffls'[4:10]
'hkjsdffilamsldff'[:]
'hhsakdjlfh'[4:22]
b'kasjdf;lfkosadf'[-49:10]
bytearray(b'weklfjhskfasdff')[-2:23]
tuple('wwkashfdfk')[-23:12]
list('wwaskljhf')[-23:1]
2)、步长切片
[start:stop:step]
step为步长,可以正,负整数,默认为1
step要和start:stop同向,否则返回空序列;例如[-9:-10:-1]
shell命令:
!command是在ipython里面执行linux的shell命令
如:!ls -l
魔术方法:
1、用%开头的,ipython内置的特殊方法
%是line magic,即只能控制一行
%%是cell magic,notebook的cell,即可以控制一个cell(cell是程序输入的地方)
2、%alias定义一个系统命名的别名
例:alias ll ls -l
3、%timeit statement(行magic,要接在后面,必须在一行内)
参数:-n一个循环loop执行语句多少次
-r循环执行了多少次loop,取最好的结果
4、%%timeit setup——code
code....
封装和解构:(先封装后解构)
封装:
将多个值使用逗号分隔,然后组合在一起
本质上,返回一个元组,只是省掉了小括号
python特有语法,被很多语言学习和借鉴
例:t1=(1,2)#定义为元组
t2=1,2 #将1和2封装成元组
解构:
1、把线性结构的元素解开,并顺序的赋给其他变量
左边接纳的变量数要和右边解开的元素个数一致
如:
lst=[3,5]
first,second=lst
print(first,second)
左边如果超过一个变量就认为是在解构
如:
a,*b,d=2,1,4,2,8
print(b)
结果:
[1, 4, 2]
2、左边的b使用*接收,但不能单独使用。被*变量名收集后组成一个列表,尽可能的拿,而且只能有一个
3、丢弃变量:这是一个惯例是一个不成文的约定;如果不关心一个变量,就可以定义改变量的名字为'_'。‘_’是一个合法的标识符,也可以作为一个有效的变量使用,但是定义成下划线就是希望不要被使用,除非你明确的知道这个数据需要使用
如:
lst=[9,8,7,20]
first,*second=lst
head,*_,tail=list #_是合法的标识符,看到下划线就知道这个变量就是不想被是被使用