1。将数组再次分组,根据需要的大小细分一个列表:效果如下:EXAMPLESchunk([1,2,3,4,5],2)#[[1,2],[3,4],5]return,map的第二个参数是一个列表,map会使用列表中的每个元素来调用第一个参数函数的函数,返回一个新的列表,其中包含函数函数的每个返回值。2.将数字转换为数组也是关于map的一个应用,将整数拆分为数组:defdigitize(n):returnlist(map(int,str(n)))效果如下:EXAMPLESdigitize(123)#[1,2,3]它把整数n转成字符串后,也会自动序列化拆分字符串,最后把元素应用到map的第一个参数,转成整数返回。3.非递归斐波那契记住斐波那契数列,前两个数的和就是第三个数的值,比如0,1,1,2,3,5,8,13...。如果你用递归实现这个算法,效率很低。我们用非递归的方式来实现:效果如下:EXAMPLESfibonacci(7)#[0,1,1,2,3,5,8,13]这个很简单,但是思路要走大约。4.批量统一变量名或字符串格式带下划线的字符串。效果如下:EXAMPLESsnake('camelCase')#'camel_case'snake('sometext')#'some_text'snake('some-mixed_stringWithspaces_underscores-and-hyphens')#'some_mixed_string_with_spaces_underscores_and_hyphens'snake('AllThe_smallThings')#small_things"re.sub用于替换字符串中的匹配项,这其实是"套娃"的一种用法,一开始可能不太好理解,需要慢慢理解。第一个替换是把'-'替换成s字符串中的'',第二次替换是针对第一次替换后的字符串,将匹配'([A-Z]+)'正则表达式的字符段(全部为大写单词)替换为r'\1',即就是,用空格分隔每个单词。第三次替换是针对第二次替换后的字符串,对于匹配'([A-Z][a-z]+)'正则表达式的字符段(即首字母大写,其他字母小写)使用r'\1'替换也是用空格分隔单词。
