基本概念都差不多了,不过看到一些内容之前没记录过,还是记录下。
顺序排序是从0开始到N-1结束
倒序排列是从N-1结束,到-1结束
很容易忽视的一个倒序基础知识
切片索引的更多内容
切片索引的语法要比简单的单一元素索引灵活的多。开始和结束素引值可以超过字符串的
长度。换句话说,起始索引可以小于0,而对于结束索引,即使索引值为100 的元素并不存在也
不会报错,简单地说,即使用100 来作为一个长度不到100 的序列的结束索引也不会有什么问
题,例子如下:
>>> ('Faye', 'Leanna', 'Daylen')[-100:100]
('Faye', 'Leanna', 'Daylen')
下面这个例子又扫盲了,增加基础知识
s = 'abcde'
i = -1
for i in range(-1, -len(s), -1):
print (s[:i])
如果按照正常的range(-1,-5),他是打印不出结果来的,是空的.
但是他用了-len(s)这样的相当于不确定量的话,python会自动帮你调整位置,比如这个例子中,len出来的长度是5,所以应该是(-5,-1),python会自动帮你调整,然后最后再进行倒序排列
然后下面看到一个关于max函数的用法,第一次见到,记录下
max(iter,key=None) or
max(arg0,arg1...,key=None)b 返回iter 或(arg0,arg1,...)中的最大值,如果指定了key,
这个key 必须是一个可以传给sort()方法的,用于比较的回调函数.
min(iter, key=None) or
min(arg0, arg1.... key=None)b 返回iter 里面的最小值;或者返回(arg0,arg2,...)里面的
最小值;如果指定了key,这个key 必须是一个可以传给sort()方法的,用于比较的回调函数.
原来学max的时候,不知还能制定key,这里搜了一下例子,发现key需要是表达式,如下:
但是为什么是7但是不是8呢?
因为key=lambda x: x > 6
那么
key(0) = False
key(1) = False
key(2) = False
...
key(6) = False
key(7) = True
key(8) = True
key(9) = True
max([1,2,3,4,5,6,7,8], key=lambda x: x > 6)
等价于
max(False,False,False,...,False, True, True, True)
7是第一个True, 返回7.
还有个例子没想明白.....晚上回去上stackoverflow去问