010
列表,比喻成工程仓库,一个数组里面只能全装int或char
而列表里面能塞一堆不同的东西
三种创建方法:
一是普通列表
二是混合列表,整形,字符型,浮点型和嵌套另一个列表在里面
三是空列表em=[ ]
回忆 way.append(‘福禄娃娃’),一次只能加一个
extend使用时,后面不是加一个元素,是加一个列表
a=list(range(1,11))
print(a)
b=list(range(1,11,2))
b.extend([a])
print(b)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 3, 5, 7, 9, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
011
insert带插入位置索引值的插入,回忆以前笔记
列表下标是从0开始的,不是从1开始,这点跟数组比较像
remove是删除
member.remove(‘怡静’)
del menber[1] 或者 del menber 可以删掉列表中的一个,或者删掉整个列表
pop(),像栈一样弹出栈顶的东西,弹出列表最后一个元素
列表分片
member[0:3]不会改变原列表
member[:]
012
列表如果元素单一(仅仅有一个元素,可以比较大小
list1=[123,456]
list2=[234,123]
print(list1>list2)
list3=[456,123]
print(list3>list1)
list4=list1+list2
print(list4)
list5=list4*3
print(list5)
print(list5.count(123))
print(list5.index(123,3,6))
False
True
[123, 456, 234, 123]
[123, 456, 234, 123, 123, 456, 234, 123, 123, 456, 234, 123]
6
3
同时列表中的元素可以用in和not in来判断元素是否在列表中
123 in list3
True
list1=[123,456]
list2=[234,123]
list4=list1+list2
print(list4)
list4.reverse()#reverse将列表倒置,永久性改变
print(list4)
list4.sort()#永久性排序,归并排序
print(list4)
[123, 456, 234, 123]
[123, 234, 456, 123]
[123, 123, 234, 456]
拷贝,有个类似指针的功能,即当直接使用=赋值列表时,会类似引用(传地址),list6改变,list8也会改变,而使用list7=list6[:]时,只是将值传过去,两个列表见不存在任何关系,看到reverser和sort可以同时改变list6和list8两个列表,也有反向对list8操作去改变list6,一般还是用list7这种分片的方式去赋值
list6=[9,4,5,4,3,7,8,9,0,1]
list7=list6[:]
list8=list6
print(list7)
print(list8)
list6.sort()
print(list7)
print(list8)
list8.reverse()#list8改变的同时,list6也会进行改变
print(list6)
[9, 4, 5, 4, 3, 7, 8, 9, 0, 1]
[9, 4, 5, 4, 3, 7, 8, 9, 0, 1]
[9, 4, 5, 4, 3, 7, 8, 9, 0, 1]
[0, 1, 3, 4, 4, 5, 7, 8, 9, 9]
[9, 9, 8, 7, 5, 4, 4, 3, 1, 0]
013
元祖,tup=(1,2,3,4,5)就是被const过的列表
temp=(1)
print(type(temp))
temp2=1,2,3
print(type(temp2))
<class 'int'>
<class 'tuple'>
对于元祖和列表,8*列表,不是matlab中的每个元素都乘以8,是把现有元素扩充成8背,例如5个元素变成了40个
元祖的插入
temp[:2],指的是前两个元素,下标从0到1
temp='甲鱼','黑夜','迷途','python'
temp=temp[:2]+('小布丁',)+temp[2:]
print(temp)
('甲鱼', '黑夜', '小布丁', '迷途', 'python')
014
字符串
strl='I love fish'
print(strl[:6])
print(strl[5])
print(strl[0:5])
[0:5]实质是从0到4
I love
e
I lov
对于插入字符串,使用方法同元祖类似
strl.cassfold()把所有变成小写
strl.center(width)字符串居中,用空格填充至长度为width的新字符串
字符串使用命令很多。。需要时网上查一下
015
format方法,字符串格式化
A="{0} love {1} {2}".format("i","fish",'com')
print(A)
B="{a} love {b} {c}".format(a="I",b="bigfish",c=1)
print(B)
C='{0:.1f}{1}'.format(27.658,'GB')#0后面的.1f跟c很像,但是要加:
print(C)
i love fish com
I love bigfish 1
27.7GB
使用%c进行asc2转换
print('%c %c %c'%(97,98,99))
print('%d + %d = %d'%(4,5,4+5))
a b c
4 + 5 = 9
%o八进制, 例如 ‘%o“ % 10
%x十六进制
%d十进制
\r回车符 \t横向制表符 \n换行符
016
序列
b='I love fish'
b=list(b)
print(b)
c=max(b)
print(c)
d=[1,2,3,4,7,9]
f=max(d)
print(f)
g=min(d)
print(g)
使用序列的max或min要保证列表类型是统一的,不能既有整形又有字符型。
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h']
v
9
1
sum也是,保证类型统一
d=[1,2,3,4,7,9]
h=sum(d)
print(h)
26
reversed,sorted
d=[4,2,1,8,7,9]
g=sorted(d)
h=reversed(d)
print(d)
print(g)
print(list(h))
#print(h),是不行的,
print(h)
#d.reverse()
[4, 2, 1, 8, 7, 9]
[1, 2, 4, 7, 8, 9]
[9, 7, 8, 1, 2, 4]
<list_reverseiterator object at 0x00000199360CA438>
017
def定义函数,形参实参,python中函数也可以有返回值,用return
def functon(name):
print(name+' '+'thanks')
functon('yes')
def add(n1,n2):
result =n1+n2
#print(result)
return (n1+n2)
print(add(4,10))
yes thanks
14
关键字参数,比较标准
def say(name,words):
print(name + 'say'+ words)
say(words='world',name='Hello')
Hellosayworld
默认参数,参考c++即可,给形参定义好
def say(name='fish',words='world'):
print(name + 'say'+ words)
say(name='Hello')
Hellosayworld
收集参数,这种情况下,实参输入多少都行,都会被par接收
def test(*par):#收集参数
print(len(par))
print(par[0])
test(1,2,3,4)#这种情况下,有收集参数,输入多少都行
4
1