列表
定义方法和常用函数
a = [,,,]
任意个对象构成列表
method | function |
---|---|
a[n] | 索引:返回第n+1个对象 |
a[i:j] | 索引:返回i+1~j+1的对象 |
a[i:j]=[] | 修改:修改i+1~j+1的对象 |
常用函数 | 功能 |
---|---|
len(a) | 返回a包含对象个数 |
list.sort(*, key=None, reverse=False) | 从小到大排序,key是指定某个属性或者函数排序,reverse是倒序 |
定义
months = ['January','February', 'March','April', 'May','June', 'July','August', 'September','october' ,'November','December']
print(len(months))
print(months[0])
print(months[0:3])
months[0:2]=[1,2]
print(months[0:2])
print('-----------------------')
def A():
print('i am A')
return 'a'
def B():
print('i am B')
return 'b'
def C():
print('i am C')
return 'c'
D = [C(),B(),A()]
12
January
['January', 'February', 'March']
[1, 2]
-----------------------
i am C
i am B
i am A
列表快速生成
list = [对象 for循环]
cubes = [x**3+10 for x in range(1,11)]
print(cubes)
[11, 18, 37, 74, 135, 226, 353, 522, 739, 1010]
variables = [x+y for x in 'abc' for y in '0123']
print(variables)
['a0', 'a1', 'a2', 'a3', 'b0', 'b1', 'b2', 'b3', 'c0', 'c1', 'c2', 'c3']
数值列表 range()
但不是列表
range(a,b)
是产生从a到b-1的整数,但不是列表.range(5)
输出就是range(0, 5)
通过list(range(a,b))
转化成列表
range(x,y,z)
含义:从x开始,y-1为上界,步长为z
print('out of range(2,5):')
for x in range(5):
print(x)
print(list(range(1,6)))
range(5)
out of range(2,5):
0
1
2
3
4
[1, 2, 3, 4, 5]
range(0, 5)
骚操作排序
对象在排序时是有标准的,一定是选取共有的某个属性作为指标
key=xxx
就是规定按照某个属性、指标
而对象的属性除了内置的len
,size
,之外,还可以自己构造,可以是任意函数
下面定义了moive
电影类
以movie的类的对象的方法score
“电影平均得分”作为排序依据
lambda介绍
lambda函数也叫匿名函数,及即没有具体名称的函数,它允许快速定义单行函数,类似于C语言的宏,可以用在任何需要函数的地方。这区别于def定义的函数。
lambda语法格式:
lambda 变量 : 要执行的语句
返回值
:
后的函数对象
Moive.sort(key=lambda x: x.pscore())
里,执行labda x:
,x
作为变量,将得到的函数x.pscore()
返回给key
name = ['yang','wang','zhang']
name.sort(key = len, reverse=True)
#定义movie电影类
class movie ():
def __init__(self,name='N/A',points=[]):
self.sname = name
self.spoints = points
def pscore(self):
score = self.spoints[0]+self.spoints[1]+self.spoints[2]
print(score)
return score
def __repr__(self):
return self.sname
#实例化movie
a1 = movie('a',[1,2,3])
a2 = movie('b',[2,3,4])
a3 = movie('c',[0,1,2])
#以movie类对象a1,a2,a3为元素组成数组
Movie=[a1,a2,a3]
Movie.sort(key=lambda x: x.pscore())#成员函数,改变Movie
#sorted(Moive,key=lambda x: x.pscore())全局函数,不改变Movie
Movie
6
9
3
[c, a, b]
列表循环
dummy = ['a',1,2,False,[3,4]]
for x in dummy:
print(type(x))
<class 'str'>
<class 'int'>
<class 'int'>
<class 'bool'>
<class 'list'>