1.将列表分组并根据需要的大小进行细分:frommathimportceildefchunk(lst,size):returnlist(map(lambdax:lst[x*size:x*size+size],list(range(0,int(ceil(len(lst)/size))))))如下:EXAMPLESchunk([1,2,3,4,5],2)#In[[1,2],[3,4],5]return,map的第二个参数是一个列表,map会使用列表中的每一个元素来调用第一个参数的function函数,返回一个包含function函数的每一个返回值的新列表。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...。如果递归是用来实现这个序列,效率很低。我们使用非递归的方式来实现:deffibonacci(n):ifn<=0:return[0]sequence=[0,1]whilelen(sequence)<=n:next_value=sequence[len(sequence)-1]+sequence[len(sequence)-2]sequence.append(next_value)返回序列效果如下:EXAMPLESfibonacci(7)#[0,1,1,2,3,5,8,13]是这样看很简单,但是思想必须四处走动。4.批量统一变量名或字符串格式带下划线的字符串。fromreimportsubdefsnake(s):return'_'.join(sub('([A-Z][a-z]+)',r'\1',sub('([A-Z]+)',r'\1',s.replace('-',''))).split()).lower()效果如下: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')#"all_the_small_things"re.sub用于替换字符串中的匹配项。这其实是“套娃”的一个用法,一开始可能不太好理解,需要慢慢理解。第一个替换是将s字符串中的'-'替换为''。第二次替换是针对第一次替换后的字符串,将匹配'([A-Z]+)'正则表达式的字符段(全部大写的单词)替换为r'1',即用空格分隔每个单词.第三次替换是针对第二次替换后的字符串,用r'1'来匹配'(A-Z+)'正则表达式的字符段(即第一个字母大写,其他字母小写)即可替换,也用空格分隔单词。这是我们文章的结尾。如果你今天想要我们的Python教程,请继续关注我们。如果对您有帮助,请在下方点赞或观看。如果您有任何问题,可以在下方留言区留言。我们会耐心解答!Python实用词典(pythondict.com)不只是字典欢迎关注公众号:Python实用词典原文来自Python实用词典:30秒学会Python的BeautifulShortcodes(翻译3)
