python使用,qpythonl
当然,学习Python最快的方法就是实战中的各种小项目。只要自己思考,自己写,就能记住规则。
本文是30个Python小任务,初学者可以尝试自己实现。
即使是同样的30段代码,Python开发者也能看到是否有意想不到的使用方法。
(文末分享Python的精彩福利教程)
1重复元素以下方法检查指定列表中是否有重复元素。使用set()函数将删除所有重复的元素。
defall _ unique(lst):return len(lst)==len(set)lst))x=[1,1,2,2,3,2,3,4,5,6] y=
检查3358根www.Sina.com/http://www.Sina.com/two琴弦的成分是否相同。
FroollectionImportCounterDefanagram(first,second):return counter(first)==counter(second)anagram))ABCD 3 acdb )# true http://www .Sina.com/http://www
def byte _ size(string):return(len)string . encode(utf-8))))byte _ size))byte _ size))
358 www.Sina.com/http://www.Sina.com/This代码块可以打印字符串n次,没有循环文件。
N=2s=编程 print (s * n) #编程编程编程
358 www.Sina.com/http://www.Sina.com/In下面的代码块,使用title()方法将字符串中每个单词的第一个字母大写:
S=编程很棒 print (s.title ()) #编程很棒
7块给定一个特定的大小,定义了用这个大小切割链表的函数。
frommathimportcelldefchunk(lst,size):返回列表(map)Lambdax:lst[x * size 3360 x * size size],list] range ce
Defcompact(lst):返回列表(filter) bool,lst)) compact) [0,1,False,2,,3, a , s ,34]
array=[ a , b],[c , d],[e , f ]transmission=zip(array)printing)(transmission))
a=3 print(2 A8)true print)1==a2)# False
2
下面的代码将列表合并成一个字符串,并将每个元素之间的分隔符设置为逗号:hospities=[ basketball , football , swimming ]print( myhobies are:,join)(hobbies))my hobbies游泳字符元素组成判定下面的方法统计一个字符串中元音 a , e , I , o 和 u 的个数。它是由正则表达式生成的。
Importredefcount _元音字母(str):return len(len)re . find all)r [aeiou]),str,re。IGNORECASE()))
unt _元音( foobar )# 3 count _元音( gym) # 0
以下方法将给定字符串的第一个字符统一为小写。
def decapitalize(string):返回str[:1]。lower()str[1:]decapitalize( FooBar )# FooBar decapitalize( FooBar )# FooBar
13 首字母小写这个方法将列表的嵌套递归扩展到一个列表中。
def spread(arg):ret=[]for I in arg:if is instance(I,list):ret . extend(I)else:ret . append(I)retdef deep _ flatten(lst):result=[]result . extend(list(map(lambda x:deep _ flatten(x)if type(x)==list else x,lst)))返回resultdeep_flatten([1,[2],[[3],4],5]) # [1,2,3,4,5]
14 展开列表该方法将返回第一个列表中不在第二个列表中的元素。同时,如果要反馈第二个列表的唯一元素,需要添加一个set_b.difference(set_a)。
def difference(a,b):set _ a=set(a)set _ b=set(b)comparison=set _ a . difference(set _ b)返回列表(比较)difference([1,2,3],[1,2,4]) # [3]
15 列表的差以下方法将首先应用给定的函数,然后在应用函数后返回具有不同结果的列表元素。
def difference_by(a,b,fn):b=set(map(fn,b))return[item for item in a if fn(item)not in b]from math import floor difference _ by([2.1,1.2],[2.3,3.4],floor)#[1.2]difference _ by([{ x :2 },{ x: 1 }],[{ x: 1 }],lambda v : v[x])# [ { x: 2 } ]
16 通过函数取差你可以在一行代码中调用多个函数。
def add(a,b):return a bdef subtract(a,b):return a - ba,b=4,5print((subtract if a b else add)(a,b)) # 9
17 链式函数调用以下代码将检查两个列表是否重复。
def has _ duplicates(lst):return len(lst)!=len(set(lst))x=[1,2,3,4,5,5]y=[1,2,3,4,5]has _ duplicates(x)# true has _ duplicates(y)# False
18 检查重复项下面的方法将用于合并两个字典。
def merge_two_dicts(a,b):c=a.copy() #用once from breturn ca={x:1,Y: 2} b={y: 3, z: 4} print (merge _ two _ dicts (a,b)) # {y: 3, x:1, z: 4}在Python 3.5或更高版本中,我们还可以
merge _ dictionary(a,b)返回{* * a,* * b} a={x: 1, y: 2} b={y: 3, z :4 } print(merge _ dictionary(a,b)) #
def to_dictionary(keys,values):return dict(zip(keys,values))keys=[a , b , c]values=[2,3,4]print(to_dictionary(keys,values))#{a: 2, c: 4, b: 3}
19 合并两个字典我们经常使用For循环来遍历一个列表。类似地,我们可以枚举列表的索引和值。
list=[a , b , c , d]for index,element in enumerate(list):print( Value ,element, index ,index),)# (Value , a , Index ,0)# (Value , b , Index ,1)#(Value , c , Index ,2)# (Value , d , Index ,3)
20将两个列表转化为字典以下代码块可用于计算执行特定代码所需的时间。
import Time start _ Time=Time . Time()a=1b=2c=a b print(c)# 3 end _ Time=Time . Time()total _ Time=end _ Time-start _ Time print( Time:,total_time)# (Time:,1.1205673217773438e-05)
21 使用枚举我们还可以在使用try/except语句时添加一个else子句。如果没有触发错误,将运行该子句。
try:2*3except TypeError:print(引发了异常)else:print(感谢上帝,没有引发异常。)#感谢上帝,没有出现异常。
22 执行时间下面的方法将根据它们出现的频率来获取列表中最常见的元素。
def most _ frequency(list):return max(set(list),key=list.count)list=[1,2,1,2,3,2,1,4,2]most _ frequency(list)
下面的方法将检查一个给定的字符串是否是一个回文序列。它首先将所有字母转换成小写,并删除非英文字母符号。最后比较串和倒序串是否相等,如果相等,则表示为回文序列。
def回文(string):from re import subs=sub([\ W _],,string.lower())返回s==s[:-1]回文( taco cat) # True
23 Try else这段代码可以实现加、减、乘、除、取幂,不需要使用条件语句。它是通过字典的数据结构实现的:
import operator action={ :operator . add,-: operator.sub,/: operator.truediv, *: operator.mul, **: pow}print(action[-](50,25)) # 25
24元素频率这个算法会打乱列表元素的顺序,它主要通过Fisher-Yates算法对新列表进行排序:
from copy import deepcopy from randintdef shuffle(lst):temp _ lst=deepcopy(lst)m=len(temp _ lst)while(m):m-=1i=randint(0,m)temp_lst[m],temp_lst[i]=temp_lst[i],temp _ lst[m]return temp _ lst foo=[1,2,3]shuffle(foo) # [2,3,1],foo=[1,2,3]
25回文序列将列表中的所有元素,包括子列表,展开成一个列表。
def spread(arg):ret=[]for I in arg:if is instance(I,list):ret . extend(I)else:ret . append(I)retspread([1,2,3,[4,5,6],[7],8,9]) # [1,2,3,4,5,6,7,8,9]
26不使用 if-else 的计算子你可以交换两个变量的值,不需要额外的操作。
def swap(a,b):return b,aa,b=-1,14swap(a,b) # (14,-1)spread([1,2,3,[4,5,6],[7],8,9]) # [1,2,3,4,5,6,7,8,9
27 Shuffle按键取对应值,可以通过以下方式设置默认值。如果get()方法没有设置默认值,当遇到不存在的键时,它将返回None。
d={a: 1, b: 2}print(d.get(c ,3)) # 328展开列表
第一季Python基础
第二季Python的深入和拓展
第三节网络编程、多线程、扩展库
第四节算法,Python源代码,函数式编程,人工实现神经网络。
如下图:
这是一本Python电子书
29 交换值
30字典默认值
Python福利教程分享!!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。