当前位置:首页 > 行业发展 > 正文

快收藏!!整理了100个Python小技巧!!

▍1、for循环中的else条件这是一个for-else方法,循环遍历列表时使用else语句。下面举个例子,比如我们想检查一个列表中是否包含奇数。那么可以通过for循环,遍历查找。numbers=[2,4,6,8,1]fornumberinnumbers:ifnumber%2==1:print(nu...

▍1、for循环中的else条件这是一个for-else方法,循环遍历列表时使用else语句。下面举个例子,比如我们想检查一个列表中是否包含奇数。那么可以通过for循环,遍历查找。numbers=[2......

▍1、for循环中的else条件

这是一个for-else方法,循环遍历列表时使用else语句。下面举个例子,比如我们想检查一个列表中是否包含奇数。那么可以通过for循环,遍历查找。

numbers=[2,4,6,8,1]fornumberinnumbers:ifnumber%2==1:print(number)breakelse:print("Nooddnumbers")

如果找到了奇数,就会打印该数值,并且执行break语句,跳过else语句。没有的话,就不会执行break语句,而是执行else语句。

▍2、从列表中获取元素,定义多个变量

my_list=[1,2,3,4,5]one,two,three,four,five=my_list

▍3、使用heapq模块,获取列表中n个最大或最小的元素

importheapqscores=[51,33,64,87,91,75,15,49,33,82]print((3,scores))[15,33,33,49,51]

▍4、将列表中的所有元素作为参数传递给函数

我们可以使用*号,提取列表中所有的元素

my_list=[1,2,3,4]print(my_list)1234

如此便可以将列表中的所有元素,作为参数传递给函数

defsum_of_elements(*arg):total=0foriinarg:total+=ireturntotalresult=sum_of_elements(*[1,2,3,4])print(result)[2,3,4,5,6,7]

▍6、使用一行代码赋值多个变量

one,two,three,four=1,2,3,4

▍7、列表推导式

只用一行代码,便可完成对数组的迭代以及运算。比如,将列表中的每个数字提高一倍。

numbers=[1,2,3,4,5]squared_numbers=[num*numfornuminnumbers]print(squared_numbers){'a':16,'b':25}

▍8、通过Enum枚举同一标签或一系列常量的集合

枚举是绑定到唯一的常量值的一组符号名称(成员)。在枚举中,成员可以通过身份进行比较,枚举本身可以迭代。

fromenumimportEnumclassStatus(Enum):NO_STATUS=-1NOT_STARTED=0IN_PROGRESS=1COMPLETED=2print(_)2

▍9、重复字符串

name="Banana"print(name*4)Trueprint(1xandx10){'name':'Fan','location':'Guangdong,Guangzhou','surname':'Xiao'}

▍12、查找元组中元素的索引

books=('Atomichabits','Egoistheenemy','Outliers','Mastery')print(('Mastery'))[1,2,3]string="[[1,2,3],[4,5,6]]"my_list=string_to_list(string)print(my_list)-2print((subtract(3,1)))-2print((subtract(b=3,a=1)))HelloWorldprint("Hello",="")print("World")words,with,commas,in,between

▍17、打印多个值,在每个值之间使用自定义分隔符

print("29","01","2022",sep="/")name@

▍18、不能在变量名的开头使用数字

four_letters="abcd"thisdoesn’twork

这是Python的变量命名规则。

▍19、不能在变量名的开头使用运算符

+variable="abcd"thisdoesn'twork

这个确实挺神奇的。

▍21、在变量名的任何地方使用下划线

a______b="abcd"thisalsoworks

这并不意味着,你可以无限使用,为了代码的易读性,还是需要合理使用。

▍22、使用下划线分割数值较大的数字

print(1_000_000_000)1234567

如此,看到一大堆数字时,也能轻松阅读。

▍23、反转列表

my_list=['a','b','c','d']my_()print(my_list)ThisTsse

▍25、反向切片

my_string="Thisisjustasentence"print(my_string[10:0:-1])Taketwostepsforwardprint(my_string[10:0:-2])isjustasentenceprint(my_string[:3])1.5print(3//2)比较两个值print(first_list==second_list)是否指向同一内存print(first_listissecond_list)True

▍29、合并字典

dictionary_one={"a":1,"b":2}dictionary_two={"c":3,"d":4}merged={**dictionary_one,**dictionary_two}print(merged)Truesecond="ab"print(firstsecond)False

▍32、使用id()查找变量的唯一id

print(id(1))4325776656print(id("string"))4325215472print(id(1))4325215536print(id(1))4422282544name="fatos"print(id(name))4482699712("Beijing")print(id(cities))4352726176my_(5)print(id(my_set))Positive

▍38、使用sorted()检查2个字符串是否为相同

defcheck_if_anagram(first_word,second_word):first_word=first_()second_word=second_()returnsorted(first_word)==sorted(second_word)print(check_if_anagram("testinG","Testing"))Trueprint(check_if_anagram("Know","Now"))65print(ord("B"))66print(ord("a"))['a','b','c']

▍41、获取字典的值

dictionary={"a":1,"b":2,"c":3}values=()print(list(values)){1:'a',2:'b',3:'c'}

▍43、将布尔值转换为数字

print(int(False))1.0

▍44、在算术运算中使用布尔值

x=10y=12result=(x-False)/(y*True)print(result)Falseprint(bool(3))Trueprint(bool("string"))True

▍46、将值转换为复数

print(complex(10,2))0xb

▍47、在列表的第一个位置添加一个值

如果使用app(),将从列表的最后一个位置插入新值。可以通过使用insert(),来指定插入新元素的索引和数值。那么列表的第一个位置为0,即下标为0。

my_list=[3,4,5]my_(6)my_(0,2)print(my_list)[1,3]print(my_list)[1,4,9,16]print(my_list)147

▍53、range()默认从0开始

defrange_with_zero(number):foriinrange(0,number):print(i,='')defrange_with_no_zero(number):foriinrange(number):print(i,='')range_with_zero(3)012

▍54、不需要和0比较长度

如果长度大于0,则默认为True。

defget_element_with_comparison(my_list):iflen(my_list)0:returnmy_list[0]defget_first_element(my_list):iflen(my_list):returnmy_list[0]elements=[1,2,3,4]first_result=get_element_with_comparison(elements)second_result=get_element_with_comparison(elements)print(first_result==second_result)Thirdaddress

▍56、在外部直接访问私有属性

在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法.如果想要在外部访问,那么只需要在名称前面加上'_类名'变成'_类名__名称'。

classEngineer:def__init__(self,name):=nameself.__starting_salary=62000dain=Engineer('Dain')print(dain._Engineer__starting_salary)56

▍58、定义一个方法,可以调用任意个参数

defget_sum(*arguments):result=0foriinarguments:result+=ireturnresultprint(get_sum(1,2,3))15print(get_sum(1,2,3,4,5,6,7))TsinghuaUniversity

使用父类的名称调用父类。

classParent:def__init__(self,city,address):==addressclassChild(Parent):def__init__(self,city,address,university):Parent.__init__(self,city,address)=universitychild=Child('PekingUniversity','FudanUniversity','TsinghuaUniversity')print()两数相加print('first'+'second')2000print(total_)True

同样的,==操作符使用__eq__方法。

classJourney:def__init__(self,location,destination,duration):===durationdef__eq__(self,other):return((==)and(==)and(==))first=Journey('LocationA','DestinationA','30min')second=Journey('LocationB','DestinationB','30min')print(first==second)

还有一些其他的定义。

__sub__()for-__mul__()for*__truediv__()for/__ne__()for!=__ge__()for=__gt__()for

▍62、为类的对象定义自定义的可打印版本

classRectangle:def__init__(self,a,b):==bdef__repr__(self):returnrepr('Rectanglewitharea='+str(*))print(Rectangle(3,4))tHISISJUSTASENTENCE.

▍64、检查字符串是否都是空格

string=""result=()print(result)Truename="SecurePassword"print(())Truename="133"print(())Truestring="FirstnameLastname"print(())False

▍67、根据参数删除字符

从右侧开始。

string="Thisisasentencewith"print(())"thishereisasentence"

同样的,左侧也能操作。

string="ffffffffFirst"print(("f"))Falsestring="1337"print(())Falsestring="2**5"print(())42673string="四二六七三"print(())True

▍70、检查字符串是否所有单词都是大写开头

string="Thisisasentence"print(())Truestring="HowtoPrintAStringinPython"False

▍71、在元组中使用负索引

numbers=(1,2,3,4)print(numbers[-1])1

▍72、在元组中嵌套列表和元组

mixed_tuple=(("a"*10,3,4),['first','second','third'])print(mixed_tuple[1])('aaaaaaaaaa',3,4)

▍73、快速统计元素在列表中出现的次数

names=["Besim","Albert","Besim","Fisnik","Meriton"]print(("Besim"))[4,5,6]print(my_list[-3])Science

▍75、计算元素在元组中出现的次数

my_tuple=('a',1,'f','a',5,'a')print(my_('a'))2

▍77、步进获得元组

my_tuple=(1,2,3,4,5,6,7,8,9,10)print(my_tuple[::3])(4,5,6,7,8,9,10)

▍79、将列表、集合、字典中所有元素删除

my_list=[1,2,3,4]my_()print(my_list)set()my_dict={"a":1,"b":2}my_()print(my_dict){1,2,3,4,5,6}

还可以使用update()方法,将第二个集合的元素插入到第一个集合中去。

first_set={4,5,6}second_set={1,2,3}first_(second_set)print(first_set)Positiveis_positive(-3)

▍82、if语句中的多个条件

math_points=51biology_points=78physics_points=56history_points=72my_conditions=[math_points50,biology_points50,physics_points50,history_points50]ifall(my_conditions):print("Congratulations!Youhavepassedalloftheexams.")else:print("Iamsorry,butitseemsthatyouhavetorepeatatleastoneexam.")Congratulations!Youhavepassedalloftheexams.

▍84、任何非空字符串都为True

print(bool("Nonempty"))False

▍85、任何非空列表、元组、字典都为True

print(bool([]))Falseprint(bool({}))True

▍86、None、False、0都为False

print(bool(False))Falseprint(bool(0))string

可通过修饰符global,修改全局变量的值。

string="string"defdo_nothing():globalstringstring="insideamethod"do_nothing()print(string)Counter({'a':3,'n':2,'B':1})result=Counter([1,2,1,3,1,4,1,5,1,6])print(result)Trueprint(check_if_anagram('Here','Rehe'))False

可以使用sorted()方法。

defcheck_if_anagram(first_word,second_word):first_word=first_()second_word=second_()returnsorted(first_word)==sorted(second_word)print(check_if_anagram("testinG","Testing"))Trueprint(check_if_anagram("Know","Now"))Counter({2:5,1:1,3:1})print(_common())a

▍93、copy()和deepcopy()的区别

浅拷贝:拷贝父对象,但是不会拷贝对象的内部的子对象。

深拷贝:拷贝父对象.以及其内部的子对象。

下面是一个copy()的例子。

first_list=[[1,2,3],['a','b','c']]second_list=first_()first_list[0][2]=831print(first_list)[[1,2,831],['a','b','c']]

这里是一个deepcopy()的例子。

importcopyfirst_list=[[1,2,3],['a','b','c']]second_list=(first_list)first_list[0][2]=831print(first_list)[[1,2,3],['a','b','c']]

▍94、访问字典中不存在的键时,避免报错

如果你想访问字典一个不存在的键,代码会报错。

my_dictonary={"name":"Name","surname":"Surname"}print(my_dictonary["age"])

错误如下。

KeyError:'age'

可以通过使用defaultdict(),代码将不会报错。

fromcollectionsimportdefaultdictmy_dictonary=defaultdict(str)my_dictonary['name']="Name"my_dictonary['surname']="Surname"print(my_dictonary["age"])

▍95、构建迭代器

classOddNumbers:def__iter__(self):=1returnselfdef__next__(self):x=+=2returnxodd_numbers_object=OddNumbers()iterator=iter(odd_numbers_object)print(next(iterator))3print(next(iterator))[1,2,3,4,5]

▍97、打印模块的安装位置

importpandasprint(pandas)[0,2,4,6,8]

▍99、sort()和sorted()的区别

sort():对原始列表进行排序

sorted():返回一个新的排序列表

groceries=['milk','bread','tea']new_groceries=sorted(groceries)groceries=['milk','bread','tea']print(groceries)()根据主机ID、序列号和当前时间生成UUIDprint(())生成一个随机UUIDprint(())#93bc700b-253e-4081-a358-24b60591076a


最新文章