Python技巧,Python用法
Python知识点排序的奇妙技巧作者:
霍华德沃纳努特
参考资料:
1.30秒学会一个python技巧
2.Python正则表达式新手教程
3.Python title()方法菜鸟教程
1用一行代码判断一个字符串中的字符是否相同。str[1:]==str[:-1]可以封装成一个函数:
def all _ equal(str):return str[1:]==str[:-1]
2要将一个字符串转换成驼峰类型,这里的字符串需要满足以下规则:单词之间需要用 _ 、-或分隔。
import redef camel(s):s=re sub(r (\ s _ -), ,s)。标题()。replace(,)返回[0]。lower()s[1:] camel( some-mixed _ string with spaces _ scores-and-hyphens ) some mixed string with spaces sunderscoresandhyphens 此方法涉及以下知识点:
re:re是python中的正则表达式模块,可以很容易地正则化字符。这里使用的re.sub的原型是:re sub(pattern,repl,string,count=0,flags=0)“”pattern:正则化中的模式字符串。Repl:替换字符串,也可以是函数。String:要查找和替换的原始字符串。Count:模式匹配后替换的最大次数。默认值0表示替换所有匹配项。Title():返回一个“titled”字符串,这意味着所有单词都以大写字母开头。比如你输入“这是一个句子。”,你会输出‘这是一个句子。’replace():这是python中一个常用的函数,它将一个字符串中的所有第一个子字符串转换成第二个子字符串。Lower():这也是python中常用的函数,将字符中的英文字母变成小写。
3将一个字符串复制n次,形成一个新字符串。在python中,str * n_times可以直接用来完成字符串的n_times复制:
DEF _ Times _ String (str,n): RETURN STR * N4将字符串转换为下划线拆分类型这个问题类似于问题2中的解决方案,使用了re模块:
def snake(str):返回 _ 。join(re(([A-Z]),r \1 ,s.replace(-,)。split())。lower() snake( all the-small things ) all _ the _ small _ things 5获取字典的键列表def keys _ only (flat _ dict):返回列表(flat _ dict.keys ( 6获取字典的值列表def values _ only (flat _ dict):返回列表(flat _ dict。values ()) 7使用python方法反转列表顺序def reverse(arr):return arr[:-1]8一行代码完成for循环生成列表。下面的写法叫做Python列表派生。
Arr=[1,2,3,4,5,6,7] [x * x for x in arr] [1,4,9,16,25,36,49] #添加判断条件[x*x for x in arr if x1] [1,9,25,49]
【a b for a in a bC for b in ABC 】[ AA , AB , AC , BA , BB , BC , CA , CB , CC]列表推导中有if-else语句。
A=[I if i1==0 else A for I in range(10)]
9行代码Python定义了一个二维数组,定义了一个三行四列的二维数组。
# method 1 arr=[[0 for I in range(4)]for j in range(3)][[0,0,0,0],[0,0,0,0],[0,0,0,0]]# method 2将numpy作为nparr=NP,array ([
1Reduce函数reduce()函数累加参数序列中的元素。
该函数对数据集(链表、元组等)中的所有数据执行以下操作。):先用传递来的函数(带两个参数)对集合中的第一个和第二个元素进行运算,再用函数function用第三个数据计算结果,最后得到一个结果。
从func工具导入reduce def add (a,b):返回a b reduce (add,[1,2,3,4,5]) # output 15: 1 2 3 4 5应用示例:
现有三个数组L1=[a , b , c],L2=[x , y , z],L3=[1,2,3],通过编程得到这三个数组按顺序排列的结果x1x2x3,满足X1,X2,x3分别属于L1,L2,L3。
from func tools import reduce def func(L1,L2):return[str(a)str(b)for a in L1 for b in L2]reduce(func,[a , b , c],[x , y , z],[1
从functools导入reducereduce(lambda l1,L2:[str(A)str(B)for A in L1 for B in L2],[[A , B , C],[x , y , z],[1,2,3]])
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。